我想创建一个涉及响应设备上所有网址的应用。文档提到了如何处理如下的特定方案 -
<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="www.youtube.com" android:scheme="http" />
</intent-filter>
但是,如何定义一个意图过滤器来处理不仅属于特定域或主机的任何URL?可能吗?
答案 0 :(得分:3)
定义架构,如:
<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:scheme="http"/>
<data android:scheme="https"/>
<data android:scheme="about"/>
<data android:scheme="javascript"/>
</intent-filter>
答案 1 :(得分:1)
只需从您发布的代码中删除以下行:
<data android:host="www.youtube.com" android:scheme="http" />
所以你最终会得到
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
或者,您可能只想将行缩短为
<data android:scheme="http" />
这将使您的应用仅截取http网址,因此基本上是链接。
答案 2 :(得分:0)
即使官方的android教程说您可以简单地删除数据过滤器以减少意图过滤器的限制,但这样做可能会导致“缺少数据元素”错误。 您可以改为执行以下操作
<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="*.com" android:scheme="http" />
</intent-filter>
您还可以为.net,.org等添加数据过滤器