web-dev-qa-db-fra.com

Android Répondre à l'URL dans l'intention

Je souhaite que mon intention soit lancée lorsque l'utilisateur accède à une certaine URL: par exemple, le marché Android le fait avec http://market.Android.com/ = urls. youtube aussi. Je veux que les miens le fassent aussi.

151
Isaac Waller

Je l'ai fait! En utilisant <intent-filter> . Mettez ce qui suit dans votre fichier manifeste:

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

Cela fonctionne parfaitement!

190
Isaac Waller

Vous devrez peut-être ajouter différentes permutations à votre filtre d'intention pour le faire fonctionner dans différents cas (http/https/ect).

Par exemple, je devais faire ce qui suit pour une application qui s'ouvrirait lorsque l'utilisateur ouvrirait un lien vers des formulaires Google, www.docs.google.com/forms

Notez que le préfixe de chemin est facultatif.

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