Android Rispondi a URL in Intento


152

Voglio che il mio intento venga lanciato quando l'utente passa a un determinato URL: ad esempio, il mercato Android lo fa con http://market.android.com/ urls. così fa YouTube. Voglio che anche il mio lo faccia.


8
C'è una grande risposta a questa domanda a stackoverflow.com/questions/2448213/...
neu242

2
C'è una risposta migliore a questa domanda stackoverflow.com/questions/1609573/…
rds

Risposte:


192

L'ho fatto! Usando <intent-filter>. Inserisci quanto segue nel tuo file manifest:

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

Funziona perfettamente!


9
Per me non funziona. Potete per favore dare un esempio-Link che aprirebbe l'applicazione.
Pascal Klein

7
Vorrei reagire a "www.youtube.com" ma NON a "www.youtube.com/fr /" ... Qualche idea su come posso farlo?
Gilbou,


1
Non sono sicuro di come funzioni per tutto il mondo. Semplicemente non funziona su Chrome e apre sempre il collegamento nel browser fino a quando non si inserisce l'elemento "android: pathPrefix". La risposta comunque non ha i valori di categoria come indicato nella documentazione. Se ancora non funziona per qualcuno, fai riferimento a questo: stackoverflow.com/a/21727055/2695276 PS: faticato per giorni su questo.
Rajat Sharma,

1
È importante sapere che questo funziona solo se apri il link ESTERNO di un browser, dall'app Note o un messaggio da Whatsapp, funziona su Lollipop
D4rWiNS

10

Potrebbe essere necessario aggiungere diverse permutazioni al filtro delle intenzioni per farlo funzionare in diversi casi (http / https / ect).

Ad esempio, ho dovuto fare quanto segue per un'app che si apriva quando l'utente apriva un link ai moduli di Google Drive, www.docs.google.com/forms

Si noti che il prefisso del percorso è facoltativo.

        <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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.