flutter 內的關鍵代碼
導包:
url_launcher: ^6.3.1
跳轉邏輯:
onPressed: () async {await launchUrl(Uri.parse('demoname://'));},
安卓內的關鍵代碼
<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="demoname" /></intent-filter>
安卓中僅僅添加如上代碼便可以實現讓外部 app 跳轉,但是并不會新開一個應用,點擊跳轉按鈕會發現仍舊處在原來的 app 中,如下:
默認情況下,scheme 跳轉會復用已有的任務棧(Task),不會新開一個實例。為此還需要在安卓配置中添加如下代碼,讓喚起邏輯變成新開一個 app
android:launchMode="singleTask"android:taskAffinity="com.example.demoname"
添加后,重裝安卓 app(因為變更了 manifest配置),結果如下