使用自定义URL方案启动另一个应用程序会在启动应用程序的边界内打开该应用程序。

时间:2016-01-13 09:47:06

标签: android callback intentfilter url-scheme custom-url

我在帖子How to open an application inside another application within the latters boundaries in android?

中看到了

但是当我尝试使用自定义URL方案打开另一个应用程序时,我的应用程序正在发生这种情况。有谁知道为什么会发生这种情况?

调用其他应用程序的代码如下所示。

String callBackUrl = “OtherApp://result?params”; // This is supposed to be a callback URL with query parameters
String redirectUrl = callBackUrl.substring(0, callBackUrl.indexOf("://"));
Intent redirectIntent = new Intent();
redirectIntent.putExtra(Intent.EXTRA_TEXT, callBackUrl);
redirectIntent.setAction(redirectUrl);
redirectIntent.setType("text/plain");
startActivity(redirectIntent);

1 个答案:

答案 0 :(得分:0)

原因是因为我的应用程序是一个单任务应用程序。它是我的activity元素的AndroidManifest.xml中的android属性。

        android:launchMode="singleTask"

我找到的解决方案是在" redirectIntent"中添加两个标志。

        redirectIntent.setFlags(Intent.URI_INTENT_SCHEME);
        redirectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);