Guide technique de la liaison ciblée avec Android : Schémas d’URI

Il s’agit d’une partie du guide technique en quatre parties de la liaison ciblée avec Android. Les articles suivants traitent des  intents de Chromedes liens d’application Android, et du référent de Google Play.

Android est, de loin, une des plates-formes les plus fragmentées que les développeurs n’aient jamais eu à gérer en raison de Google qui oblige les fabricants de périphériques à assumer la responsabilité du portage du système d’exploitation, ce qui nécessite la compatibilité descendante et la prise en charge d’une multitude d’appareils compatibles. Cela donne souvent lieu à d’interminables instructions « si-alors-sinon » pour s’assurer que la méthode la plus optimale est utilisée dans le bon contexte.

Android devices deep linking

La liaison ciblée dans Android n’est en rien différente. Au fil des ans, nous avons vu une multitude d’exigences techniques devant être appliquées en fonction des circonstances et du contexte de l’utilisateur. Heureusement, Branch combine toutes ces mises en œuvre pour créer une plate-forme de liaison qui fonctionne dans tous les cas de figure. Les liaisons Branch couvrent et normalisent cette complexité afin que vous n’ayez pas à vous en soucier. Nous vous recommandons vivement d’utiliser nos outils au lieu d’essayer de les reconstruire à partir de rien, dans la mesure où ils sont offerts gratuitement.

Cette série résume tous les différents mécanismes de liaison ciblée que nous utilisons et explique leur fonctionnement et leur mise en œuvre.

Vous pouvez démarrer sur start.branch.io ou utiliser le bouton ci-dessous.

Schéma URI et filtre des intentions dans Android

Dans Android 1.0, le mécanisme de liaison ciblée du schéma URI a été créé. Il permet au développeur d’enregistrer son application pour un URI (identifiant uniforme de ressources) dans le système d’exploitation pour un appareil spécifique une fois l’application installée. Un URI peut être une chaîne sans caractères spéciaux, telle que HTTP, pinterest, fb ou myapp. Après l’enregistrement si vous ajoutez :// à la fin (ex. pinterest://) et si vous cliquez sur ce lien, l’application Pinterest s’ouvre. Si l’application n’est pas installée, l’erreur Page non trouvée s’affiche.

Exigences pour l’utilisation des schémas URI dans Android
  • Enregistrez une Activité pour répondre à l’URI par le biais d’un filtre des intentions dans le manifeste.
  • L’application doit être installée prête à être utilisée. Si l’application n’est pas installée, une erreur est générée.
Comment configurer un schéma URI dans Android

La configuration de votre application pour un schéma URI est simple. Pour commencer, vous devez choisir dans votre application une activité que vous souhaitez ouvrir lors du déclenchement du schéma URI et pour laquelle vous souhaitez enregistrer un filtre des intentions. Ajoutez le code suivant dans la balise <activity /> à l’intérieur de votre manifeste qui correspond à l’activité que vous voulez ouvrir.

<intent-filter>
<data android:scheme=your_uri_scheme />
<action android:name=android.intent.action.VIEW />
<category android:name=android.intent.category.DEFAULT />
<category android:name=android.intent.category.BROWSABLE />
</intent-filter>
view rawuri.xml hosted with ❤ by GitHub

 

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. Voici un exemple ci-dessous:

Gérer la liaison ciblée de l’application Android

Malheureusement, à partir de là, vous devrez procéder à l’analyse syntaxique de la chaîne pour lire les valeurs ajoutées au schéma URI.

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

 

Unfortunately, from here, you’ll need to do string parsing to read the values appended the URI scheme.

Utilisation pratique des schémas URI dans Android

La méthode URI de liaison ciblée est très restrictive et n’est pas recommandée sans importante modification, car elle générera un message d’erreur si votre application n’est pas installée. Afin d’utiliser avec efficacité un schéma URI, vous devrez rajouter au dessus de tout la construction d’outils pour gérer les cas limites critiques, par exemple lorsque l’application n’est pas installée.

Pour assurer que les utilisateurs qui cliquent continuent de bénéficier d’une expérience de grande qualité si l’application n’est pas utilisée, vous devez inclure le schéma URI dans un wrapper du Javascript côté client qui peut être exécuté dans le navigateur. Vous devez héberger ce JS sur votre serveur et envoyer le lien aux utilisateurs. Voici un exemple ci-dessous:

var fallbackFunction = function() {
window.location.replace(‘market://details?id=com.myapp.package’);
};
var addIFrame = function() {
var iframe = document.createElement(“iframe”);
iframe.style.border = “none”;
iframe.style.width = “1px”;
iframe.style.height = “1px”;
iframe.src = ‘your_uri_scheme://’;
document.body.appendChild(iframe);
};
addIFrame();
setTimeout(fallbackFunction, 250);
view rawclient.js hosted with ❤ by GitHub

 

Le code tentera d’ouvrir l’application en assignant une source iFrame au schéma URI puis reviendra en toute sécurité vers Google Play Store en cas d’échec du téléchargement de l’application.

Conclusion

Ne ratez pas les prochains articles de cette série sur la liaison profonde dans Android.

Android est extrêmement complexe et les cas limites sont partout. Vous penserez que tout se passe super bien jusqu’à ce qu’un utilisateur se plaigne que ses liens ne fonctionnent pas sur Facebook lors de l’exécution d’Android 4.4.4. C’est pourquoi vous devriez utiliser un outil comme Branch pour vous éviter un tel cauchemar et vous assurer que vos liens fonctionnent partout.

Commencer

TO LEARN MORE ABOUT BRANCH'S
PRODUCTS AND SERVICES

Request a demo