使用自定义URL方案启动另一个应用程序会在启动应用程序的边界内打开应用程序。
问题描述:
我在帖子中看到了How to open an application inside another application within the latters boundaries in android?使用自定义URL方案启动另一个应用程序会在启动应用程序的边界内打开应用程序。
但是,当我尝试使用自定义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);
答
原因是因为我的应用程序是一个单一的任务应用程序。它是我Activity元素的AndroidManifest.xml中的android属性。
android:launchMode="singleTask"
我找到的解决方案是添加两个标志到“redirectIntent”。
redirectIntent.setFlags(Intent.URI_INTENT_SCHEME);
redirectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);