我有一个意图过滤器来拦截来自我域上浏览器的 url。这将使用户可以选择使用本机应用程序或浏览器。我已经设置了以下意图过滤器。
<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:host="myDomain" android:pathPrefix="/custom/" android:scheme="http" />
</intent-filter>
现在,我不打算将用户困在本机应用程序中,因为使用浏览器有很多好处。所以我想给用户一些在应用程序中返回浏览器的能力。我创建了一个带有 onClick 的按钮,它只是为 View 创建一个意图和代表它的 url。这将再次向用户显示选择对话框。
对此的问题是,还允许用户选择一个复选框以始终使用本机应用程序。虽然这很好,但有时绝对是错误的。因此,如果我正在阅读一篇提到特定 url 和该文档特定部分的博客文章,那么拦截 url 不是用户想要的,而是会将它们发送到本机应用程序。同样,在选择带有意图的按钮后,它们将立即被吸回到应用程序中。
您如何为系统浏览器构建 ACTION_VIEW 意图,或者至少检测到用户选择始终使用本机应用程序,以便您可以使用 ACTION_WEB_SEARCH (它与历史堆栈具有不同的 UI 行为,这就是为什么我不会不要一直选择使用此操作)。