DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions de gestion du téléphone
  • Présentation
  • Mise en place
  • Génération Android et configuration sur le serveur Web
  • Génération iOS et configuration sur le serveur Web
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Deep link vers une application mobile
Présentation
Le "deeplinking" est une technique permettant de rediriger l'utilisateur directement vers un contenu précis d'une application mobile (plutôt que dans un navigateur) lorsque celui-ci clique sur un lien dans une page web ou dans un email.
Exemple : un lien renvoyant sur la fiche d'un produit dans une application de vente.
Si l'utilisateur dispose de l'application installée sur son mobile, le clic sur le lien ouvre directement l'application et affiche la fiche produit voulue.
Si l'utilisateur ne dispose pas de l'application installée sur son mobile, le clic sur le lien peut par exemple :
  • renvoyer vers une page Web correspondant au contenu à afficher,
  • renvoyer vers la page d'installation de l'application sur le store.
Cela permet d'éviter l'affichage d'un message d'erreur à l'utilisateur final.
Ce type de lien s'appelle "App link" sous Android et "Universal link" sous iOS.
Mise en place
Pour qu'une application Android ou iOS puisse être lancée par un "deep link", il est nécessaire de :
  1. Utiliser la fonction DeepLinkProcédure dans le code d'initialisation du projet Mobile. Cette fonction permet de définir la procédure WLangage exécutée lors du clic sur un "deep link".
  2. Définir dans l'assistant de génération de l'application Android ou iOS, les URL qui seront associées à l'application. Chaque URL doit définir un protocole (HTTP ou HTTPS en Android, HTTPS uniquement en iOS), un nom de domaine et optionnellement, tout ou partie du chemin de l'URL.
  3. Publier le fichier d'association sur le serveur Web.
Remarque : Pour savoir si une application a été lancée via un lien "deep link", utilisez la fonction ExeInfo avec la constante exeLancement.

Génération Android et configuration sur le serveur Web

Il est possible de définir une ou plusieurs URL associées à l'application. Chaque URL doit définir :
  • un protocole (HTTP ou HTTPS),
  • un nom de domaine,
  • optionnellement, tout ou partie (préfixe, pattern) du chemin de l'URL.
Lors de la génération de l'application Android, une étape spécifique "Deep links" permet de saisir les noms de domaine associés aux liens "deep link".
Pour chaque nom de domaine utilisé, il nécessaire de créer un fichier assetlinks.json contenant le document JSON affiché dans l'assistant de génération. Ce fichier devra être publié à l'emplacement suivant :
https://<Nom de domaine>/.well-known/assetlinks.json
Attention : Le fichier "assetlinks.json" doit être accessible depuis l'extérieur et sans redirection via une connexion HTTPS.
Ce fichier contient entre autres le nom de package de l'application ainsi que l'empreinte SHA256 de son certificat de signature et permettra au système, pour des raisons de sécurité, de vérifier que le propriétaire de l'application et le nom de domaine correspondant au lien sont bien les mêmes.
Si cette vérification échoue, le système utilise alors son comportement par défaut, qui consiste en général à afficher la cible du lien dans un navigateur.
Après l'installation de l'application, il peut être nécessaire d'attendre quelques minutes (voire quelques heures) pour que le processus de vérification soit effectué.
Attention : Certains navigateurs mobile n'autorisent pas le lancement direct d'applications depuis les liens des pages. Certains paramétrages des navigateurs peuvent également l'empêcher.

Génération iOS et configuration sur le serveur Web

Il est possible d'utiliser plusieurs URL de liens "deep link".
Lors de la génération de l'application iOS, une étape spécifique "Deep link (Apple universal links)" permet de saisir les noms de domaine associés aux liens "deep link".
Pour chaque nom de domaine, il est nécessaire de créer un fichier spécifique :
https://<Nom de domaine>/.well-known/apple-app-site-association
Ce fichier devra être accessible depuis Internet (par les serveurs de Apple), en HTTPS, avec un certificat valide.
Remarque : L'option "Mode développeur" présente dans l'assistant de génération permet à l'application de récupérer le fichier apple-app-site-association directement sans passer par un CDN géré par Apple. Cette option ne peut être utilisée qu'en mode simulateur sur Mac, en utilisant un "provisioning profile" de développement.
Le fichier apple-app-site-association aura un contenu similaire à :
{
"applinks": {
    "details": [
         {
           "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
           "components": [
             {
                "/": "/buy/*",
                "comment": "Matches any URL with a path that starts with /buy/."
             },
             {
                "/": "/help/website/*",
                "exclude": true,
                "comment": "Matches any URL with a path that starts with
/help/website/ and instructs the system not to open it as a universal link."
             },
             {
                "/": "/help/*",
                "?": { "articleNumber": "????" },
                "comment": "Matches any URL with a path that starts with
/help/ and that has a query item with name 'articleNumber'
and a value of exactly four characters."
             }
           ]
         }
     ]
 }
}
Pour compatibilité avec iOS 12, le format suivant doit être utilisé :
{
  "applinks": {
      "apps": [],
      "details": {
          "ABCDE12345.com.example.app": {
              "paths": [
                  "/buy/*",
                  "/help/*"
              ]
          }
      }
  }
}
Pour plus d'informations sur le format du fichier apple-app-site-association, consultez : https://developer.apple.com/documentation/xcode/supporting-associated-domains
Version minimum requise
  • Version 28
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/03/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale