Android отвечает на URL-адрес в намерении


Я хочу, чтобы мое намерение было запущено, когда пользователь переходит на определенный url: например, android market делает это с http://market.android.com/ urls. как и youtube. Я постараюсь сделать это.

2 148

2 ответа:

Я сделал это! Используя <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>

это отлично работает!

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

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