Я хочу, чтобы мое намерение было запущено, когда пользователь переходит к определенному URL-адресу: например, рынок Android делает это с помощью http://market.android.com/ URLs. так же как и youtube. Я хочу, чтобы это тоже было сделано.
Android реагирует на URL в намерении
Ответ 1
Я сделал это! Используя <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>
Это отлично работает!
Ответ 2
Вам может потребоваться добавить различные перестановки в ваш фильтр намерений, чтобы заставить его работать в разных случаях (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>