flutter app内跳转到其他安卓 app的方法

flutter 内的关键代码

导包:

XML 复制代码
url_launcher: ^6.3.1

跳转逻辑:

Dart 复制代码
onPressed: () async {
          await launchUrl(Uri.parse('demoname://'));
        },

安卓内的关键代码

XML 复制代码
            <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

XML 复制代码
            android:launchMode="singleTask"
            android:taskAffinity="com.example.demoname"

添加后,重装安卓 app(因为变更了 manifest配置),结果如下