Guide technique de la liaison ciblée avec Android : Liens d’application

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.

Android app links deep linking

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:

  1. Configurez le manifeste pour recevoir les intentions
  2. 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>
view rawmanifest.xml hosted with ❤ by GitHub

 

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

 

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);
});
view rawnodecode.js hosted with ❤ by GitHub

 

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);
}
view rawintent.java hosted with ❤ by GitHub

 

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.

Commencer

TO LEARN MORE ABOUT BRANCH'S
PRODUCTS AND SERVICES

Request a demo