Générateur de deep link
Générez le lien direct, le lien Android intent://, les liens stores et un extrait de redirection avec repli — à partir d'un schéma d'app et d'une URL de secours.
monapp://produit/123intent://produit/123#Intent;scheme=monapp;package=com.exemple.monapp;S.browser_fallback_url=https%3A%2F%2Fexemple.fr%2Fproduit%2F123;endhttps://apps.apple.com/app/id123456789https://play.google.com/store/apps/details?id=com.exemple.monapp<script>
(function () {
var scheme = "monapp://produit/123";
var iosFallback = "https://apps.apple.com/app/id123456789";
var androidFallback = "https://play.google.com/store/apps/details?id=com.exemple.monapp";
var webFallback = "https://exemple.fr/produit/123";
var ua = navigator.userAgent || "";
var isIOS = /iphone|ipad|ipod/i.test(ua);
var isAndroid = /android/i.test(ua);
var fallback = isIOS ? iosFallback : isAndroid ? androidFallback : webFallback;
var start = Date.now();
window.location.href = scheme;
setTimeout(function () {
// Si la page est toujours visible après le délai, l'app ne s'est
// probablement pas ouverte : on redirige vers le repli.
if (!document.hidden && Date.now() - start < 2500) {
window.location.href = fallback;
}
}, 1500);
})();
</script>Qu'est-ce qu'un deep link ?
Un deep link, ou lien profond, est une adresse qui ouvre une application mobile directement sur un écran précis — une fiche produit, une conversation, un réglage — plutôt que sur son accueil. Il en existe deux familles : les schémas d'URI propres à l'app (monapp://produit/123) et les URL https associées à un domaine, qui ouvrent l'app quand elle est installée et le site web sinon.
Schéma d'URI, intent Android, universal link
| Type | Plateforme | Configuration requise | Limite |
|---|---|---|---|
| Schéma personnalisé monapp://produit/123 | iOS et Android | CFBundleURLTypes dans Info.plist (iOS) ; intent-filter avec android:scheme (Android) | N'ouvre rien si l'app n'est pas installée, sans message ni repli automatique |
| Lien intent Android intent://produit/123#Intent;scheme=monapp;…;end | Chrome sur Android | Aucune configuration côté serveur ; le repli est écrit dans le lien lui-même | Non pris en charge par iOS ni par tous les navigateurs Android |
| Universal Link (iOS) https://exemple.fr/produit/123 | iOS | Fichier apple-app-site-association servi en HTTPS sous /.well-known/, plus l'entitlement Associated Domains | Nécessite un accès au serveur du domaine ; ce générateur ne peut pas le produire |
| App Link (Android) https://exemple.fr/produit/123 | Android | Fichier assetlinks.json sous /.well-known/, plus un intent-filter android:autoVerify | Même contrainte : la vérification repose sur un fichier hébergé sur votre domaine |
Un schéma personnalisé échoue en silence quand l'app est absente : rien ne se passe, l'utilisateur reste sur une page blanche. Les deux mécanismes suivants existent pour corriger ce défaut. Le lien intent Android embarque l'URL de secours dans le lien lui-même, ce qui ne demande aucun accès au serveur. Les universal links (iOS) et App Links (Android) confient l'arbitrage au système d'exploitation, mais exigent qu'un fichier de vérification soit hébergé sur votre domaine — c'est la raison pour laquelle cet outil ne peut pas les générer seul.
Que produit le générateur
À partir du schéma saisi, il assemble le lien direct, le lien intent:// avec son package et son URL de repli encodée, les deux liens de fiche store (App Store à partir de l'identifiant numérique, Google Play à partir du nom de package), et un extrait JavaScript autonome à coller sur une page de redirection. Cet extrait détecte iOS ou Android d'après le User-Agent, tente d'ouvrir le schéma, puis bascule vers le repli adapté au bout de 1,5 seconde si la page est toujours au premier plan. C'est une heuristique, pas une garantie : elle dépanne les campagnes et les liens de partage, mais un universal link reste préférable en production.
Non. Tous les liens et le code générés le sont dans votre navigateur, en JavaScript. Rien n'est envoyé ni stocké.
Un deep link à schéma personnalisé (monapp://) est une adresse comprise par le seul système d'exploitation, à condition que l'app soit installée. Un universal link est une URL https ordinaire que le système redirige vers l'app après avoir vérifié un fichier hébergé sur votre domaine ; si l'app est absente, le lien s'ouvre normalement dans le navigateur. C'est ce repli automatique qui en fait la solution recommandée aujourd'hui.
C'est une syntaxe reconnue par le navigateur Chrome sur Android : elle indique un schéma d'app à ouvrir, un package optionnel pour vérifier l'app visée, et une URL de secours (S.browser_fallback_url) à utiliser si l'app n'est pas installée — le navigateur y bascule automatiquement. L'URL de secours est encodée en pourcentage dans le lien généré.
Le schéma personnalisé (ex. monapp://) ne fonctionne que si votre application a bien déclaré ce schéma dans sa configuration (Info.plist sur iOS, intent-filter sur Android). Ce générateur produit la syntaxe correcte des liens, mais ne peut pas configurer l'application elle-même.
Sur un appareil ou un simulateur avec l'app installée, ouvrez le lien depuis une note, un e-mail ou la barre d'adresse. Évitez de le tester depuis un webview intégré à une autre application (celui d'un réseau social par exemple) : ces environnements bloquent fréquemment les schémas personnalisés et donnent un faux négatif.
Il repose sur une heuristique : l'extrait tente d'ouvrir le schéma, puis vérifie après 1,5 seconde si la page est toujours visible pour en déduire que l'app ne s'est pas lancée. Un système lent, un onglet passé en arrière-plan ou une boîte de dialogue de confirmation peuvent fausser cette déduction. Un universal link ou un App Link, gérés par le système, restent la solution robuste.