深层链接不会打开新应用
Deep linking does not open a new app
我有两个应用程序。从第一个开始,我想通过深度链接启动第二个。它有效,但问题是第二个开始于第一个。我想在新实例中启动第二个。
第一个应用打开第二个应用的代码:
String uri = "deeplinkTestTom://token/123456";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);
第二个应用程序的清单:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data
android:scheme="deeplinkTestTom" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
</application>
当我尝试从我的第一个应用程序 (String uri = "facebook://facebook.com/inbox";
) 启动 Facebook 应用程序时,它会在一个新应用程序中启动 Facebook,而不是在我的第一个应用程序中。所以我想我的第二个应用程序的清单中有些东西是 missig,但我找不到什么。
我该怎么办?
我相信你说的是新 Task
而不是 "new app"。
您需要使用 Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
在新的 Task
中开始一个 Activity
。
对于你的情况,使用
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
我有两个应用程序。从第一个开始,我想通过深度链接启动第二个。它有效,但问题是第二个开始于第一个。我想在新实例中启动第二个。
第一个应用打开第二个应用的代码:
String uri = "deeplinkTestTom://token/123456";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);
第二个应用程序的清单:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data
android:scheme="deeplinkTestTom" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
</application>
当我尝试从我的第一个应用程序 (String uri = "facebook://facebook.com/inbox";
) 启动 Facebook 应用程序时,它会在一个新应用程序中启动 Facebook,而不是在我的第一个应用程序中。所以我想我的第二个应用程序的清单中有些东西是 missig,但我找不到什么。
我该怎么办?
我相信你说的是新 Task
而不是 "new app"。
您需要使用 Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
在新的 Task
中开始一个 Activity
。
对于你的情况,使用
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);