Android отвечает на URL в намерении - PullRequest
151 голосов
/ 08 февраля 2009

Я хочу, чтобы мое намерение было запущено, когда пользователь переходит на определенный URL-адрес: например, рынок Android делает это с http://market.android.com/ URL-адресами. как и YouTube. Я тоже хочу, чтобы мой сделал это.

Ответы [ 2 ]

190 голосов
/ 08 февраля 2009

Я сделал это! Использование <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 голосов
/ 10 июля 2016

Вам может понадобиться добавить различные перестановки в ваш фильтр намерений, чтобы он работал в разных случаях (http / https / ect).

Например, мне пришлось сделать следующее для приложения, которое открывается, когда пользователь открывает ссылку на формы на диске Google, 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>
...