Je souhaite ouvrir mon application depuis une adresse électronique, comme dans l'exemple ci-dessous pour Twitter.com .
Email avec lien:
Sélection pour ouvrir l'application ou le navigateur:
Après avoir cliqué sur le choix de l'application, l'application Twitter s'ouvre:
J'ai essayé le code suivant, mais cela ne fonctionne pas:
<intent-filter>
<action Android:name="Android.intent.action.VIEW"></action>
<category Android:name="Android.intent.category.DEFAULT"></category>
<category Android:name="Android.intent.category.BROWSABLE"></category>
<data Android:Host="www.Twitter.com" Android:scheme="http"></data>
</intent-filter>
Si quelqu'un a une bonne réponse, veuillez écrire quelques exemples ici.
Le code suivant a fonctionné pour moi:
<intent-filter>
<action Android:name="Android.intent.action.VIEW"></action>
<category Android:name="Android.intent.category.DEFAULT"></category>
<category Android:name="Android.intent.category.BROWSABLE"></category>
<data
Android:Host="www.my.app.com"
Android:path="launch"
Android:scheme="http"></data>
</intent-filter>
Avec le lien de messagerie défini comme http://www.my.app.com/launch
.
Ref: Lancer l'application Android à partir d'un lien ou d'un email
Il suffit de passer par ceci Deeplinking google document. Vous viendrez pour en savoir plus sur ce concept de lien profond.
J'espère que cela aidera un corps.
Ex: Votre URL sera quelque chose comme https://roadies.com et vous avez le filtre d'intention dans manifeste comme ci-dessous
Android:name="com.droid.MainActivity"
Android:label="@string/app_name" >
<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="roadies.com"
Android:scheme="https" />
</intent-filter>
</activity>
Pour moi, aucune des réponses affichées ici n'a fonctionné. J'ai essayé des dizaines de syntaxes différentes sans aucun succès. J'obtenais une erreur d'analyse lors de la création de l'application via Cordova.
J'ai finalement rencontré cette réponse qui m'a conduit sur la bonne voie.
J'ai donc créé un crochet dans le dossier PROJECT_ROOT/hooks/after_prepare/
appelé 010_add_intent_filters.sh
. Voici le contenu de ce crochet:
!/usr/bin/bash
MANIFEST=./platforms/Android/AndroidManifest.xml
grep -q pathPattern $MANIFEST && { print "Manifest already modified. Nothing to do."; exit 0; }
AFTER_LINE='Android:name="MainActivity"'
ADDITION='\
<intent-filter>\
<action Android:name="Android.intent.action.VIEW"></action>\
<category Android:name="Android.intent.category.DEFAULT"></category>\
<category Android:name="Android.intent.category.BROWSABLE"></category>\
<data Android:scheme="https" Android:Host="google.com" Android:pathPattern=".*"></data>\
</intent-filter>
';
sed -i -e "/${AFTER_LINE}/a${ADDITION}" $MANIFEST
Cela a finalement fonctionné. Aucune modification à config.xml
n'est requise si vous prenez le chemin du hook. J'espère que cela aide quelqu'un dans le besoin.
PS: Je suis convaincu que Cordova est une excellente technologie, mais j’ai rarement vu une bibliothèque aussi mal documentée ... Il est vraiment incroyable de travailler avec cette bibliothèque.