Quelqu'un peut me guider s’il vous plaît au sujet de comment lancer mon application android depuis le navigateur android ?
Réponses
Trop de publicités?Utiliser un <intent-filter>
avec un <data>
élément. Par exemple, pour gérer tous les liens de twitter.com, vous placez à l'intérieur de votre <activity>
votre AndroidManifest.xml
:
<intent-filter>
<data android:scheme="http" android:host="twitter.com"/>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
Ensuite, lorsque l'utilisateur clique sur un lien vers twitter dans le navigateur, ils sera demandé à ce que l'application à utiliser pour compléter l'action: le navigateur ou de votre application.
Bien sûr, si vous voulez fournir une intégration étroite entre votre site web et votre application, vous pouvez définir votre propre schéma:
<intent-filter>
<data android:scheme="my.special.scheme" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
Puis, dans votre web app, vous pouvez mettre des liens comme:
<a href="my.special.scheme://other/parameters/here">
Et lorsque l'utilisateur clique dessus, votre application sera lancée automatiquement (car il sera probablement le seul qui peut manipuler my.special.scheme://
type d'uri). Le seul inconvénient est que si l'utilisateur ne dispose pas de l'application installée, ils ont une fâcheuse erreur. Et je ne suis pas sûr qu'il y a aucun moyen de vérifier.
Edit: pour répondre À votre question, vous pouvez utiliser getIntent().getData()
qui retourne un Uri
objet. Vous pouvez ensuite utiliser Uri.*
méthodes pour extraire les données dont vous avez besoin. Par exemple, imaginons que l'utilisateur a cliqué sur un lien pour http://twitter.com/status/1234
:
Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "twitter.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "status"
String second = params.get(1); // "1234"
Vous pouvez le faire ci-dessus n'importe où dans votre Activity
, mais vous allez probablement vouloir le faire dans onCreate()
. Vous pouvez également utiliser params.size()
pour obtenir le nombre de segments de tracé dans l' Uri
. Regarder javadoc ou l'android développeur de site web pour les autres Uri
méthodes que vous pouvez utiliser pour extraire des parties spécifiques.
Toutes les réponses ci-dessus ne fonctionne pas pour moi avec CHROME
le 28 Jan 2014
mon Application a lancé correctement à partir de http://example.com/someresource/ liens à partir d'applications comme hangouts, gmail, etc, mais pas de l'intérieur du navigateur chrome.
pour résoudre ce problème, de sorte qu'il se lance correctement à partir de CHROME, vous devez définir l'intention de filtre comme ceci
<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="example.com"
android:pathPrefix="/someresource/"
android:scheme="http" />
<data
android:host="www.example.com"
android:pathPrefix="/someresource/"
android:scheme="http" />
</intent-filter>
remarque l' pathPrefix
élément
votre application va maintenant apparaître à l'intérieur de l'activité sélecteur à chaque fois que les demandes de l'utilisateur http://example.com/someresource/ motif de navigateur google chrome en cliquant sur un lien à partir de résultats de recherche google ou tout autre site web
S’il vous plaît voir mon commentaire ici : faire un lien dans le navigateur Android lancer mon application ?
Nous vous déconseillons de gens d’utiliser leurs propres programmes, sauf si elles définissent un plan nouveau monde internet.