DéveloppeursDocsFournisseurs
Yeria
Documentation

Liens profonds

Ouvrir votre service, ou l'un de ses écrans, depuis une notification, un courriel ou un QR code.

Description

Un lien profond ouvre votre service — ou l'un de ses écrans précis — depuis l'extérieur de l'application : une notification, un courriel, un QR code, un message.

Le lien désigne votre service, jamais votre serveur. Il porte l'identifiant que Yeria a donné à votre service, et le client résout le reste : votre URL de base, vos clés publiques, la règle de pays. C'est ce qui permet à vos liens de continuer à fonctionner quand votre infrastructure bouge, et ce qui empêche un lien forgé de pointer l'application vers un serveur qui n'est pas le vôtre.

Les deux formes

Les deux disent la même chose. Prenez celle que le support permet.

FormeUsage
yeria://dl/{op}/{serviceId}Dans une notification, un QR code, une application qui sait déjà que Yeria est installé.
https://yeria.app/dl/{op}/{serviceId}Partout où l'on attend un lien web — un courriel, une page, un SMS. Il ouvre l'application quand elle est installée.

Opérations

opOuvre
sVotre service, à son URL de base — sa vue racine.
vL'une de vos vues. Exige ?p=, voir plus bas.
cLa conversation entre l'utilisateur et votre service.
pLa proposition d'épingler votre service.
nLa demande de consentement à vos notifications. C'est le lien à mettre derrière un appel à l'action « être notifié ».

Pointer vers l'une de vos vues

v prend le chemin de la vue sur votre propre serveur, dans un unique paramètre p :

text
1yeria://dl/v/{serviceId}?p=/orders/4718
2https://yeria.app/dl/v/{serviceId}?p=/orders/4718

Une entrée profonde reçoit sa racine. Le client monte d'abord la vue servie par votre URL de base, puis pose la vue demandée par-dessus. L'utilisateur arrive donc là où vous l'avez envoyé, et un geste de retour le mène dans votre service au lieu de le faire sortir de l'application. Vous n'avez rien à déclarer pour cela : c'est ainsi que le client entre, toujours.

Les construire avec le SDK

YeriaLink écrit ces liens pour vous, et refuse d'en écrire un qui soit cassé. Un identifiant de service hors du jeu accepté, ou un chemin qui sortirait de votre service, lève à l'endroit où vous le construisez — plutôt que de produire une chaîne qui, sur le téléphone de quelqu'un, n'ouvrira rien sans rien dire.

javascript
1import { YeriaLink } from '@numerum-tech/yeriasdk';
2
3YeriaLink.service('svc_4718');                       // votre service
4YeriaLink.component('svc_4718', '/orders/4718');     // l'une de vos vues
5YeriaLink.chat('svc_4718');                          // la conversation
6YeriaLink.pin('svc_4718');                           // la proposition d'épinglage
7YeriaLink.subscribe('svc_4718');                     // le consentement aux notifications
8
9// https://yeria.app/dl/s/svc_4718

HTTPS est la forme par défaut, parce qu'elle fonctionne sur une page web comme sur un appareil où Yeria est installé. Demandez le schéma propre à Yeria là où vous savez déjà qu'il l'est :

javascript
1YeriaLink.service('svc_4718', { format: 'yeria' });
2// yeria://dl/s/svc_4718

YeriaLink.isValid(lien) répond si un lien est de ceux que Yeria honorera — utile quand un lien vous arrive d'un endroit que vous ne maîtrisez pas.

Le SDK Python porte la même classe, avec les cinq mêmes constructeurs et la même validation.

Ce que le client refuse

Un lien venu de l'extérieur est une entrée non fiable. Le client écarte en silence tout ce dont il ne peut pas répondre — un lien refusé n'ouvre rien, plutôt que d'ouvrir la mauvaise chose.

  • Un hôte autre que dl, ou un domaine autre que yeria.app. Rien d'autre n'est un lien Yeria.
  • Un identifiant de service hors de A-Z a-z 0-9 . _ ~ -, ou plus long que 128 caractères.
  • Tout paramètre autre que l'unique p d'un lien v, ou un fragment.
  • Un p qui n'est pas un chemin sur votre serveur : une URL absolue, une URL relative au protocole, une barre inversée, ou un segment ... Un lien peut atteindre l'intérieur de votre service ; il ne peut pas en sortir.
  • Un port, ou des identifiants dans l'URL.

Avant que l'utilisateur soit connecté

Un lien reçu alors que personne n'est connecté n'est pas perdu : il est gardé, et honoré dès que la session est ouverte. Votre appel à l'action fonctionne à la première installation comme au dixième lancement.

Un service hors du pays de l'utilisateur demande confirmation avant de s'ouvrir. Si l'utilisateur refuse, rien ne s'ouvre — prévoyez le cas où votre lien ne mène pas où vous l'attendiez.