web-dev-qa-db-ja.com

path、pathPrefix、またはpathPatternを使用したインテントフィルター

私のテスト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)

    />

only(path/test.html)のときにアプリを起動したい、

12
ChangUZ

最初にスラッシュがありません。以下が機能するはずです。

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

OR

Android:pathPrefix="/path/test.html"
15
David Wasser

アプリを起動する必要がある場合only Iffor link /path/test.html Then Use Android:path attribute in data tag 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>

Android:path属性は、Intentオブジェクトの完全なパスと照合される完全なパスを指定します。 ButAndroid:pathPrefix属性は、Intentオブジェクトのパスの最初の部分のみと照合される部分パスを指定します。

したがって、Android:pathPrefix属性ではなくAndroid:path属性を使用する場合、アプリは/path/test.html/path/test.html?key1=value1/path/test.html?key1=value1&key2=value2などで起動する可能性があります。

データタグのAndroidドキュメント into intent-filterに関する詳細情報

5
ahmed hamdy

pathPrefix属性は、Intentオブジェクトのパスの最初の部分のみと照合される部分パスを指定します。

Android:pathPrefix="/path/"も機能します。

4
AndyW