使用路径、路径前缀或路径模式的意图过滤器
Posted
技术标签:
【中文标题】使用路径、路径前缀或路径模式的意图过滤器【英文标题】:Intent filter using path,pathPrefix, or pathPattern 【发布时间】:2013-10-24 03:01:32 【问题描述】:我的测试 uri 字符串是
http://test.host.com/path/test.html?key1=val1&key2=val2
我在清单中制作意图过滤器
A.方案和主机(它有效,但我不想要)
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data
android:scheme="http"
android:host="test.host.com"
/>
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
B. A & path(pathPrefix, pathPattern) (没用)
<data
android:scheme="http"
android:host="test.host.com"
1. android:path="path/test.html" -> not worked (link to chrome broswer)
2. android:path="path" -> not worked (link to chrome broswer)
3. android:pathPrefix="path" -> not worked (link to chrome broswer)
4. android:pathPattern="user/invite.*" -> same (I do not know pattern)
/>
我想在仅(路径/test.html)时启动我的应用,
【问题讨论】:
【参考方案1】:您缺少开头的斜线。以下应该有效:
android:path="/path/test.html"
或
android:pathPrefix="/path/test.html"
【讨论】:
android:pathPrefix="/path/test.html"==> 它也可以。【参考方案2】:如果您需要启动您的应用仅当链接/path/test.html
,则仅在data
标记中使用android:path
属性
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http"
android:host="test.host.com"
android:path="/path/test.html" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
由于android:path
属性指定了与 Intent 对象中的完整路径匹配的完整路径。
但是 android:pathPrefix
属性指定了一个部分路径,该部分路径仅与 Intent 对象中路径的初始部分匹配。
所以当使用android:pathPrefix
属性而不是android:path
属性时,这意味着您的应用可能会以/path/test.html
、/path/test.html?key1=value1
、/path/test.html?key1=value1&key2=value2
等启动
更多关于android doc for data tag的信息进入intent-filter
【讨论】:
【参考方案3】:pathPrefix
属性指定仅与 Intent 对象中的路径的初始部分匹配的部分路径。
android:pathPrefix="/path/"
也可以。
【讨论】:
以上是关于使用路径、路径前缀或路径模式的意图过滤器的主要内容,如果未能解决你的问题,请参考以下文章