Android响应意图中的URL


Answers:


192

我做的!使用<intent-filter>。将以下内容放入清单文件中:

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

这很完美!


9
它对我不起作用。您能否举一个示例链接,它将打开该应用程序。
Pascal Klein

7
我想对“ www.youtube.com”做出反应,而不是对“ www.youtube.com/fr/”做出反应...知道我该怎么做吗?
Gilbou 2011年


1
不知道这对整个世界如何运作。只是在chrome上不起作用,它总是在浏览器中打开链接,直到您放置“ android:pathPrefix”元素。无论如何,答案没有文档中提到的类别值。如果仍然无法使用某人,请参考以下内容:stackoverflow.com/a/21727055/2695276 PS:为此苦苦挣扎了好几天。
Rajat Sharma 2015年

1
重要的是要知道,只有在打开浏览器的外部链接,notes应用程序或whatsapp的消息时,此功能才起作用,它在棒棒糖上
起作用

10

您可能需要向意图过滤器添加不同的排列,以使其在不同情况下可以工作(http / https / ect)。

例如,我必须对要在用户打开指向Google Drive表单的链接时打开的应用执行以下操作, www.docs.google.com/forms

请注意,路径前缀是可选的。

        <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"
                android:host="docs.google.com"
                android:pathPrefix="/forms"/>
            <data
                android:scheme="http"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="docs.google.com"
                android:pathPrefix="/forms" />
        </intent-filter>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.