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

时间:2019-09-02 07:14:55

标签: android react-native deep-linking

我正在使用本机反应。深度链接非常适合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>

1 个答案:

答案 0 :(得分:3)

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

  

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

     

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

尝试将android:launchMode=singleTask"放在您的活动中

  

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

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

其他背景知识包括(以及您可以尝试的其他许多方法):

FLAG_ACTIVITY_NEW_TASK clarification needed

Android Task Affinity Explanation