2010-08-27 74 views
1

我有一个意图过滤器来拦截我的域上的浏览器的网址。这将使用户可以选择使用本机应用程序或浏览器。我已经设置了以下意图过滤器。Android Intent过滤器:您如何正确使用Intent.CATEGORY_BROWSABLE?

<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。这将再次向用户提供选择对话框。

这个问题的关键是用户也被允许选择一个复选框来始终使用本机应用程序。虽然这很好,但有时绝对是错误的。因此,如果我正在阅读提及该文档的特定网址和特定部分的博客文章,则拦截该网址并不是用户所期望的内容,而是将它们发送到本机应用程序。此外,在选择具有意图的按钮后,它们将立即被吸回到应用程序中。

如何构建系统浏览器的ACTION_VIEW意图,或者至少检测到用户选择始终使用本机应用程序,以便您可以使用ACTION_WEB_SEARCH(它具有与历史堆栈不同的UI行为,即为什么我不会选择一直使用这个动作)。

回答

0

所以我再次修改过这个,答案其实很简单。使用Intent.createChooser(intent,charSequence)。无论选择什么,似乎都会绕过所保存的操作系统偏好。

相关问题