Android відповідає на URL-адресу в намірі


152

Я хочу, щоб мій намір був запущений, коли користувач переходить до певної URL-адреси: наприклад, ринок андроїдів робить це за допомогою http://market.android.com/ urls. так само і ютуб. Я хочу, щоб і моє це зробило.


8
Там відмінний відповідь на це питання в stackoverflow.com/questions/2448213 / ...
neu242

2
Є краща відповідь на це питання stackoverflow.com/questions/1609573/…
rds

Відповіді:


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
Це не працює для мене. Надайте, будь ласка, приклад-Посилання, яке відкривало б додаток.
Паскаль Кляйн

7
Я хотів би відреагувати на "www.youtube.com", але НЕ на "www.youtube.com/fr /" ... Будь-яка ідея, як я можу це зробити?
Гільбо


1
Не впевнений, як це працює на весь світ. Просто не працює на chrome, і він завжди відкриває посилання в браузері, поки ви не розмістите елемент "android: pathPrefix". Відповідь все одно не має значень категорії, як зазначено в документації. Якщо це все ще не працює для когось, зверніться до цього, будь ласка: stackoverflow.com/a/21727055/2695276 PS: цілий день бореться за це.
Раджат Шарма

1
Важливо знати, що це спрацьовує лише в тому випадку, якщо ви відкриєте посилання ВІД браузера, через додаток для заміток або повідомлення з WhatsApp. Працює на льодяник
D4rWiNS

10

Вам може знадобитися додати різні перестановки до вашого фільтра намірів, щоб він працював у різних випадках (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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.