# Deeplinks mobiles

Le « deep linking » dans les applications mobiles est une technique permettant de créer des liens directs vers des emplacements spécifiques au sein d'une application. Chez Daxium, cette fonctionnalité a d'abord été utilisée pour décrire les actions derrière les widgets de personnalisation de l'application sur iOS et Android.

Elle s'est ensuite généralisée à la navigation dans l'application Android v2 et à la communication avec d'autres applications mobiles.

Un tel lien profond est un URI (comme une URL sur le web) qui commence par *daxium-air://* pour les applications mobiles.

## Principes

### Redirections entre applications

Lorsqu'une application appelle un deeplink, elle passe en arrière-plan tandis que l'application Daxium-Air passe au premier plan. L'application appelante peut être fermée par le système à tout moment. Une fois le processus terminé dans Daxium-Air, l'application appelante peut être rappelée.

### Destinations

Les deeplinks prennent en charge plusieurs destinations, notamment la page d'accueil, l'éditeur de fiche, la vue des fiches, la page de synchronisation, etc.

Les liens peuvent également ouvrir des applications externes ou permettre à l'utilisateur de se déconnecter de l'application Daxium-Air.

### Limitations

Si l'utilisateur n'est pas connecté, ou n'a pas accès au formulaire spécifié, une erreur fatale s'affiche. Les chemins malformés ou les valeurs de champs non conformes génèrent des avertissements (voir [Gestion des erreurs](#gestion-des-erreurs) ci-dessous).

## Utilisation

### Actions d'un widget de personnalisation de l'application

Ces liens peuvent être utilisés pour les destinations suivantes.

* La page d'accueil — `/app/home`
* L'éditeur de fiche — `/app/new_submission`
* La vue des fiches — `/app/my_submission`
* La synchronisation — `/app/sync`
* La page des paramètres — `/app/settings`
* La page de recherche — `/app/search`
* La page des tâches — `/app/my_tasks`
* La page webview (qui ouvre une URL externe) — `/app/webview`
* Redirection vers une application externe — `/app/external_app`

À noter : lors de l'appel d'un deeplink, si la destination est la même que celle en cours, rien ne se passe.

### Créer une fiche avec des valeurs paramétrées

Sans doute la fonctionnalité la plus intéressante dans le contexte d'un appel depuis une application tierce. Cette application pourrait ainsi :

* cibler un formulaire spécifique à ouvrir
* [pré-remplir](/user-documentation/documentation-utilisateur/build/building-forms/field-options/prefill.md) des champs spécifiques avec des valeurs passées en paramètre

Ici, l'identifiant du formulaire est obligatoire et les valeurs des éléments optionnels (champs) peuvent être ajoutées en paramètres.

Une fois reçues, elles sont insérées dans la fiche nouvellement créée.

Chemin racine du lien : *daxium-air://editor/create/\<structure\_id>*. Le paramètre structure\_id (correspond à l'id technique du formulaire) fait partie du chemin. S'il est configuré, il dirige vers le bon formulaire ; sinon, un sélecteur est présenté à l'utilisateur qui devra faire son choix parmi tous les formulaires disponibles.

Exemple

Un tel deeplink est un URI, formé ainsi :

`daxium-air://editor/create/XXX?item1=value1&item2=value2`

Exemple complet :

```
daxium-air://editor/create/137396?string=Hello, world&number=123.456&boolean=true&date=2023-08-23T13:00:52Z&email=bob@daxium.com&phone=+33612345678
```

### Compatibilité des champs — les champs suivants sont actuellement pris en charge

* Texte (sans option texte enrichi)
* Nombre
* Date
* E-mail
* Téléphone
* Booléen

La valeur de chaque champ doit être conforme à sa typologie attendue et au format associé, faute de quoi elle n'est pas insérée.

Les paramètres du deeplink ont priorité sur les valeurs par défaut et sur le pré-remplissage.

Tous les autres types de champs sont ignorés par ce mécanisme, mais peuvent être renseignés via les valeurs par défaut habituelles et le pré-remplissage défini par l'utilisateur.

À noter : cette fonction n'est actuellement disponible que sur l'application Daxium-Air Android V2.

## Gestion des erreurs

| Code            | Message                                                                                     | Criticité        |
| --------------- | ------------------------------------------------------------------------------------------- | ---------------- |
| `DAERR-DEL1001` | Aucun utilisateur n'est connecté à l'application Daxium-Air.                                | 🔴 Fatal         |
| `DAERR-DEL1002` | Vous ne pouvez pas créer de telles données car vous n'avez pas le formulaire correspondant. | 🔴 Fatal         |
| `DAERR-DEL1003` | Vous ne pouvez pas créer de telles données car le formulaire correspondant est désactivé.   | 🔴 Fatal         |
| `DAERR-DEL1004` | Vous ne pouvez pas créer de telles données car le formulaire n'est pas de premier niveau.   | 🔴 Fatal         |
| `DAERR-DEL1005` | Le champ nommé `structureFieldName` n'existe pas dans le formulaire.                        | 🟡 Avertissement |
| `DAERR-DEL1006` | Le champ Nombre `structureFieldName` a un type incorrect dans le formulaire.                | 🟡 Avertissement |
| `DAERR-DEL1007` | La valeur du champ `structureFieldName` ne peut pas être interprétée comme un nombre.       | 🟡 Avertissement |
| `DAERR-DEL1008` | La valeur du champ `structureFieldName` ne peut pas être interprétée comme un booléen.      | 🟡 Avertissement |
| `DAERR-DEL1009` | La valeur du champ `structureFieldName` ne peut pas être interprétée comme une date.        | 🟡 Avertissement |
| `DAERR-DEL1010` | Le chemin fourni est inconnu.                                                               | 🔴 Fatal         |
| `DAERR-DEL1011` | La valeur du champ ne peut pas être interprétée comme une durée.                            | 🟡 Avertissement |
| `DAERR-DEL1012` | Le champ ne peut pas être utilisé ici.                                                      | 🟡 Avertissement |

{% hint style="info" %}
Le parcours dans l'application Daxium-Air via le deep linking étant limité à un seul écran, une fois celui-ci terminé, l'application appelante est rendue à l'utilisateur.
{% endhint %}

{% hint style="success" %}
Le deep linking avec Daxium-Air offre une méthode efficace pour naviguer dans l'application et interagir avec elle, mais il est important de respecter ses limitations et de bien gérer les erreurs pour une expérience utilisateur optimale.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.center.daxium-air.com/user-documentation/documentation-utilisateur/build/building-apps/mobile-deeplinks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
