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配置),结果如下