Table des matières
Génération de DeepLinks au moment de la compilation Android
Les liens profonds sont des aspects importants de l’application qui rendent notre application accessible à l’aide de certains liens et notifications push et sont généralement la clé du stratégie de marketing.
Il est essentiel de connecter notre écosystème Web à celui des applications.
Abordons le problème
À mesure que votre application continue de croître, les liens profonds en fonction des exigences de votre marché en font de même. en ce qui concerne nos classes java / kotlin, nous avons tendance à suivre divers principes (SOLID, etc.) pour garder le code séparé et empêcher nos classes de devenir soi-disant « DIEU » classe mais qu’en est-il de votre manifeste?
Pour résoudre le problème, considérez que votre application prend en charge un seul lien profond pour ce lien profond particulier, vous devrez répondre aux schémas HTTP et HTTPS afin de télécharger avec succès votre apk sur le Play Store.
<data
android:host="www.xyz.xyz"
android:pathPrefix="/home"
android:scheme="http" />
<data
android:host="www.xyz.xyz"
android:pathPrefix="/home"
android:scheme="https" />
Pas de problème, pas mal pour l’instant… nous en mettrons deux entrées pour notre chemin et nous nous faisons assez facilement.
Mais un beau jour, votre entreprise décide de se lancer dans le monde pour dire 4 autres pays et prennent en charge 4 langues différentes (avec un chemin localisé comme {locale}/home/
) maintenant ce serait un problème, à bien y penser, vous devrez ajouter 2 * 4 * 4 soit 32 entrées pour un seul
pathPrefix
et ce n’est qu’un exemple, les chemins peuvent facilement augmenter le nombre de entrées en fonction de la structure du chemin lui-même qui peut varier d’un cas à l’autre. 🤕
Comme nous le savons, les domaines, les paramètres régionaux ou tout ce qui mène à de nouveaux
entrée dans le manifeste pour nous.
Comprendre le fichier manifeste généré
Il est absolument important de garder à l’esprit que le fichier manifeste généré est différent pour APK et Bundle.
- Créez un fichier Gradle distinct pour conserver vos configurations de lien profond. Disons «
deeplink_config.gradle
». - Ajoutez ce qui suit à votre
build.gradle
fichier
apply from: 'deeplink_config.gradle'
3. Ajoutez une variable dans le fichier manifeste qui sera remplacée par balises à l’intérieur de votre
intent-filter
.
<intent-filter
android:autoVerify="true"
tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
deepLinkPlaceholder
intent-filter>
4. Ajoutez du code à deeplink_config
générer
HTTP
et HTTPS
schème.
La méthode generateData prend votre host
, listOfDeepLinkUrls
, locales
(dépend de votre cas d’utilisation) et list of domains
ex:[[« Www.xyz.in »].
où listOfDeepLinkUrls
stocke tous nos pathsPrefixes.
Donc, pour ajouter un nouveau lien profond à votre application, il vous suffit de l’ajouter à la liste plutôt que d’en ajouter plusieurs manuellement à l’intérieur du
manifest
.
5. Écrivez ces générés dans votre apk et votre bundle, les fichiers manifestes générés comme discuté précédemment apk et bundle ont tous deux leurs fichiers manifestes séparés et pour écrire sur ceux-ci, nous aurions besoin d’un chemin vers ces fichiers générés.
manifestOutputDirectory
peut être utilisé directement pour obtenir le chemin d’accès au fichier manifeste d’Apk mais je n’ai pas pu en trouver un pour les bundles alors utilisonsmanifestOutputDirectory
pour extraire le chemin du fichier manifeste du bundle.
Pour info: Il pourrait y avoir un meilleur moyen d’extraire le chemin du manifeste du bundle. Je serais heureux de discuter si vous avez une idée. 😃
6. Après avoir effectué toutes les modifications à l’intérieur deeplink_config.gradle
fichier permet de l’utiliser, à l’intérieur build.gradle
appel generateData()
dans défini productFlavors
de votre application afin de passer un list of domains
comme requis par cette méthode.
Si vous devez insérer des variables dans votre AndroidManifest.xml
fichier défini dans votre build.gradle
fichier, vous pouvez le faire avec le manifestPlaceholders
propriété. Cette propriété prend une carte de paires clé-valeur.
7. Pour tester le généré vous pouvez mettre un
print(links)
à la fin de generateData()
en outre, vous pouvez analyser l’apk ou peut-être ouvrir le fichier manifeste généré Comme montré ci-dessus.