Il s’agit de la partie trois du guide technique en quatre parties de la liaison ciblée avec Android. Les articles précédents traitaient des schémas URI et intentions de Chrome et le suivant traite du référent de Google Play.
Liaison ciblée avec les liens d’application Android
Avec le lancement récent d’Android Marshmallow (6.0), Android a introduit un nouveau mécanisme pour l’ouverture directe de l’application, cela s’appelle les liens d’application. Ce mécanisme est supposé reproduire la fonctionnalité des liaisons universelles d’iOS 9, grâce auxquels lorsque vous cliquez sur le lien HTTP/HTTPS et si l’application correspondante est installée, elle s’ouvre immédiatement. Voici la logique de redirection du lien d’application:
- Ouvrez l’application avec intention, si elle est installée
- Retournez vers le lien Web, si elle n’est pas installée
Le lien d’application Android est simplement un moyen de transformer les liens existants de votre site Web en liens d’application aussi. Par exemple: https://imbd.com/title/12345. Si IMDB configure correctement son site Web pour les liens d’application, lorsque IMDB est installé sur le téléphone, il s’ouvrira immédiatement lors d’un clic sur le lien. Si l’application n’est pas installée, l’URL Web sera ouverte dans un navigateur.
Dans quelques mois, lorsque la version 6.0 sera plus largement répandue, elle pourrait court-circuiter les mécanismes de l’URI standard et de Chrome Intent. Entre-temps vous devrez la prendre en charge en même temps que tous les autres mécanismes pour être sûr de pouvoir de nouveau gérer tous les cas limites, car Android est extrêmement fragmenté.
Exigences pour les liens d’application Android
- Avoir un site Web fonctionnel
- L’utilisateur doit être sous Android 6.0 +
Configuration des liens d’application Android
La configuration de votre service pour utiliser la liaison d’application se fait en deux étapes:
- Configurez le manifeste pour recevoir les intentions
- Enregistrez votre site Web en tant que lien d’application
Étape 1 Ajoutez les filtres d’intention à votre manifeste
C’est plutôt simple. Vous devez préciser à Android quel(s) site(s) Web doit/doivent ouvrir votre application plutôt que le site.
<activity …> | |
<intent-filter android:autoVerify=“true“> | |
<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=“yoursite.com“ /> | |
<data android:scheme=“https“ android:host=“yoursite.com“ /> | |
</intent-filter> | |
</activity> |
Étape 2 Configurez votre site Web pour les liens d’application
Vous devez créer un fichier appelé fichier assetlinks.json sous le format qui suit:
[{ | |
“relation”: [“delegate_permission/common.handle_all_urls“], | |
“target”: { | |
“namespace”: “android_app“, | |
“package_name”: “io.branch.branchster“, | |
“sha256_cert_fingerprints”: [“14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5“] | |
} | |
}] |
Remarque: nous avons fait fonctionner les liens d’application sans changer la valeur par défaut de android_app.
Les empreintes SHA256 du certificat de signature de votre application. Vous devrez utiliser l’utilitaire keytool pour générer les empreintes. À partir de la ligne de commande, commande dans le répertoire de base de Java, puis commande dans le dossier de la corbeille. Puis exécutez la commande suivante:
$ keytool -list -v -keystore my-release-key.keystore
(Pour arriver à localiser l’utilitaire keytool, observez cet exemple dans Mac ou Windows.)
Enfin, le fichier assetlinks.json doit être hébergé sur /.well-known/assetlinks.json. Nous configurons celui qui est adapté à toutes les applications intégrées de Branch à l’aide de nos serveurs de liaisons Node+Express. Voici le code que nous avons utilisé:
var assetlinks = fs.readFileSync(__dirname + ‘/static/assetlinks.json’); | |
app.get(‘/.well-known/assetlinks.json’, function(req, res, next) { | |
res.set(‘Content-Type’, ‘application/json’); | |
res.status(200).send(assetlinks); | |
}); |
Gestion de la liaison ciblée de l’application
Pour gérer la liaison ciblée de l’application, il vous suffit de récupérer la chaîne de données de l’intention dans l’activité qui a été ouverte en cliquant. Vous pouvez le faire ainsi:
Uri data = this.getIntent().getData(); | |
if (data != null && data.isHierarchical()) { | |
String uri = this.getIntent().getDataString(); | |
Log.i(“MyApp”, “Deep link clicked “ + uri); | |
} |
Malheureusement, à partir d’ici vous devrez effectuer une analyse syntaxique de la chaîne pour lire la chaîne complète du lien d’application qui a déclenché l’ouverture de l’application.
Utilisation pratique de la liaison ciblée
Sur le plan pratique, il s’agit du mécanisme le plus simple à utiliser si tout le monde utilise la version 6.0+ et si vous avez une structure de site Web. Comme ce ne sera pas le cas pendant encore quelques années, vous allez devoir gérer les cas limites.
Pour le moment, nous vous recommandons d’activer votre site Web avec les liens d’application, mais tout en continuant d’exploiter vos mécanismes existant de la liaison ciblée créé autour du schéma URI et des intentions de Chrome jusqu’à ce que ceux-ci deviennent plus universels. Par exemple, si un utilisateur ouvre votre site et a installé l’application, vous devez déclencher une intention de Chrome ou un schéma URI s’il clique sur un bouton de votre site mobile pour lancer l’application. Il s’avère que les liens d’application ne gèrent pas ce scénario.
Si vous ne disposez pas d’un site Web, mais souhaitez exploiter les liens d’application, nous vous recommandons d’intégrer Deepviews de Branch à votre stratégie globale des produits. Il existe des aperçus du contenu de votre application sur le Web mobile, nous les générons et les hébergeons automatiquement. Deepviews offre aux utilisateurs une bonne alternative en leur permettant de visualiser/expérimenter le contenu lorsqu’ils n’ont pas installé votre application. Elle représente une bonne solution de repli pour les liens d’application Android.
Ne ratez pas les prochains épisodes de la liaison ciblée Android.