Android - 意图过滤器,用于链接打开浏览器的应用程序OUTSIDE

时间:2017-02-19 00:03:40

标签: android android-intent mobile

我已在Android应用中成功设置了一个intent-filter,可以根据one of many SO posts on this topic从移动浏览器中打开该应用。

然而,问题是本机应用程序在浏览器中打开,而我希望它在单独的应用程序进程中打开浏览器的OUTSIDE。

通过WITHIN,我的意思是当我按下最右边的活动应用程序时#39;按钮查看正在运行的内容,我看到我当前的应用程序仍然是浏览器应用程序,并且没有打开名为MyApp的单独应用程序。就好像浏览器将我的本机应用程序嵌入其中,因此浏览器正在执行我的应用程序进程。

在OUTSIDE,我的意思是我希望能够在按下链接后看到两个活动的应用程序正在运行:(1)我启动的浏览器应用程序(2)我的MyApp应用程序。

这是我在AndroidManifest.xml中设置的intent-filter:

<intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <action android:name="android.intent.action.VIEW" />

    <data android:scheme="myapp" android:host="mypath" />
</intent-filter>

我从浏览器中打开的网页链接到这个:

<a href="myapp://mypath">Open app</a>

如何强制该应用在浏览器的外部打开?请注意,当应用启动时,我看不到应用选择器&#39;我在其他应用中看到过。

1 个答案:

答案 0 :(得分:2)

  

通过WITHIN,我的意思是当我按下最右边的活动应用程序时#39;按钮查看正在运行的内容,我看到我当前的应用程序仍然是浏览器应用程序,并且没有打开名为MyApp的单独应用程序。

您的活动是在浏览器task内启动的。

  

就好像浏览器将我的原生应用程序嵌入其中并且本身正在执行我的应用程序进程。

这不是正在发生的事情。

  

如何强制应用程序打开浏览器的外部?

如果您的意思是希望活动出现在单独的任务中...理想情况下,默认情况下会发生这种情况。我很惊讶浏览器在开始您的活动时不会添加FLAG_ACTIVITY_NEW_TASK

话虽如此,android:launchMode="singleTask"元素上的<activity>应该会为您提供所需的行为。