Android responde a la URL en intención

Respuestas:

192

¡Lo hice! Utilizando <intent-filter>. Ponga lo siguiente en su archivo de manifiesto:

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

¡Esto funciona perfectamente!

Isaac Waller
fuente
9
No me funciona. ¿Puede dar un enlace de ejemplo que abra la aplicación?
Pascal Klein
77
Me gustaría reaccionar a "www.youtube.com" pero NO a "www.youtube.com/fr /" ... ¿Alguna idea de cómo puedo hacer eso?
Gilbou
1
No estoy seguro de cómo funciona esto para todo el mundo. Simplemente no funciona en Chrome y siempre abre el enlace en el navegador hasta que coloque el elemento "android: pathPrefix". La respuesta de todos modos no tiene los valores de categoría como se menciona en la documentación. Si todavía no funciona para alguien, consulte esto por favor: stackoverflow.com/a/21727055/2695276 PD: luché durante días por esto.
Rajat Sharma
1
Es importante saber que esto solo funciona si abre el enlace FUERA de un navegador, desde la aplicación de notas o un mensaje de whatsapp. Está funcionando en lollipop
D4rWiNS
10

Es posible que deba agregar diferentes permutaciones a su filtro de intención para que funcione en diferentes casos (http / https / ect).

Por ejemplo, tuve que hacer lo siguiente para una aplicación que se abriría cuando el usuario abriera un enlace a los formularios de Google Drive, www.docs.google.com/forms

Tenga en cuenta que el prefijo de ruta es opcional.

        <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>
Jordan Réjaud
fuente