Android 深层链接在我链接的应用程序中打开,而不是启动我的应用程序的单独实例

Clo*_*aby 3 android deep-linking react-native

我正在使用本机反应。深度链接非常适合 ios。但是,对于 Android,我似乎无法弄清楚如何从深层链接正确打开我的应用程序。

从 Firefox 打开深层链接时,我的应用程序在 Firefox 窗口内启动。当我使用深层链接测试器应用程序时也是如此。除了不是从正确的应用程序启动之外,一切都按预期与应用程序一起工作。

我究竟做错了什么?这是我的 AndroidManifest.xml 的摘录:

    <activity 
         android:name=".MainActivity"
         android:label="@string/app_name"
         android:configChanges=
             "keyboard|keyboardHidden|orientation|screenSize" 
         android:windowSoftInputMode="adjustResize"  
         android:exported="true">
      <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="myapp" />
      </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

Blu*_*ell 11

看看https://developer.android.com/guide/components/activities/tasks-and-back-stack

在清单文件中声明活动时,您可以使用元素的 launchMode 属性指定活动应如何与任务关联。

launchMode 属性指定有关如何将活动启动到任务中的说明。您可以为 launchMode 属性分配四种不同的启动模式:

尝试贴上android:launchMode="singleTask"您的活动标签

系统创建一个新任务并在新任务的根处实例化活动。但是,如果 Activity 的实例已存在于单独的任务中,系统会通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建新实例。一次只能存在一个活动实例。

https://developer.android.com/guide/components/activities/tasks-and-back-stack#ManifestForTasks

进一步的背景阅读包括(以及您可以尝试的许多其他事情):

FLAG_ACTIVITY_NEW_TASK 需要澄清

Android Task Affinity 解释