You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Android深度链接问题:点击后需在新标签打开而非消息应用内

解决Flutter Android深度链接在第三方应用内打开的问题

要让点击深度链接时,你的Flutter应用以独立任务栈启动而非在消息应用内打开,需要修改AndroidManifest.xml中处理深度链接的Activity(通常是MainActivity)的以下配置:

  • 设置Activity的启动模式为singleTask
    在<activity>标签中添加android:launchMode="singleTask",这会让系统为你的应用创建独立的任务栈启动Activity,不会复用消息应用的任务栈。如果应用已经在后台运行,会直接将已有的任务栈带到前台。

  • 明确配置taskAffinity(可选但建议)
    添加android:taskAffinity="你的应用包名",确保Activity属于应用自身的任务组,避免和其他应用共享任务栈。默认情况下taskAffinity就是应用包名,但若你之前修改过这个属性,需要明确设置回来。

  • 确认深度链接的intent-filter配置正确
    处理深度链接的intent-filter必须包含以下内容,保证系统能识别该Activity可处理外部链接请求:

    • <action android:name="android.intent.action.VIEW" />
    • <category android:name="android.intent.category.DEFAULT" />
    • <category android:name="android.intent.category.BROWSABLE" />
      同时要正确配置data标签的scheme和host,对应你的深度链接规则。

示例配置代码

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask"
    android:taskAffinity="com.your.app.package"
    android:exported="true">
    <!-- 应用启动的intent-filter -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <!-- 深度链接处理的intent-filter -->
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- 替换成你的深度链接scheme和host -->
        <data
            android:scheme="myapp"
            android:host="example.com" />
    </intent-filter>
</activity>

内容的提问来源于stack exchange,提问作者Vikas Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:35:36