17

我的测试 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)

    />

我只想在 (path/test.html) 时启动我的应用程序

4

3 回答 3

20

您在开头缺少斜线。以下应该有效:

android:path="/path/test.html"

或者

android:pathPrefix="/path/test.html"
于 2013-10-16T13:32:41.697 回答
11

如果您只需要启动您的应用程序If for link /path/test.htmlThen Use android:pathattribute in datatag only

<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>

Asandroid: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 的更多信息intent-filter

于 2015-05-17T17:17:27.367 回答
4

该属性指定仅与 Intent 对象中路径的初始部分pathPrefix匹配的部分路径。

android:pathPrefix="/path/"也将工作。

于 2014-06-05T01:34:06.843 回答