Pour transférer une application Web installée (PWA) vers une nouvelle origine, les utilisateurs doivent généralement désinstaller manuellement l'ancienne application et réinstaller la nouvelle. Ce processus entraîne généralement la perte de l'intégration au niveau de l'OS, comme les raccourcis de la barre des tâches et les autorisations de notification. La migration de l'origine des applications Web automatise cette transition en établissant un transfert sécurisé entre l'ancienne et la nouvelle origine.
La migration est une procédure de validation en deux étapes : le nouveau site revendique l'ancien site comme son prédécesseur, et l'ancien site autorise le nouveau site comme son successeur.
Contraintes importantes
Procédure d'implémentation
1. Vérification de l'état "Same-Site"
OBLIGATOIRE : Les anciennes et les nouvelles origines DOIVENT être "Same-Site". Ils doivent partager le même domaine enregistrable (eTLD+1).
- Autorisé : migration de
app.example.comversnew.example.com(les deux partagentexample.com). - Autorisé : "Migrer de
example.com/app1versexample.com/app2". - Interdit : migrer de
example.comversexample.org(domaines enregistrables différents).
2. Configurer la nouvelle application
La nouvelle application doit déclarer l'application précédente. La nouvelle application doit avoir un id.
Dans le fichier manifest.json du nouveau site, ajoutez le champ migrate_from :
{
"name": "My New App",
"id": "/demo.html",
"start_url": "/demo.html",
"migrate_from": [
{
"id": "https://old-app.example.com/"
}
]
}
3. Autoriser la migration sur l'ancienne origine
L'ancienne origine doit explicitement autoriser la migration pour éviter le piratage d'origine. Créez un fichier de configuration diffusé à partir du répertoire .well-known.
Emplacement du fichier : https://old-app.example.com/.well-known/web-app-origin-association
{
"https://new-app.example.com": {
"allow_migration": true
}
}
4. Signaler la migration de manière proactive (facultatif)
Pour déclencher immédiatement la migration pour les utilisateurs existants sans attendre qu'ils visitent le nouveau site, mettez à jour le fichier manifeste de l'ancien site avec un indice migrate_to.
{
"migrate_to": [
{
"id": "https://new-app.example.com/",
"install_url": "https://new-app.example.com/demo.html"
}
]
}
5. Exiger que les utilisateurs migrent (facultatif)
Par défaut, une migration est suggérée aux utilisateurs. Pour rendre la transition obligatoire, définissez behavior sur force dans le fichier manifeste de la nouvelle application.
{
"migrate_from": [
{
"id": "https://old-app.example.com/",
"behavior": "force"
}
]
}
Remarque : behavior: "force" ne supprime pas l'ancienne application de manière silencieuse. Le navigateur affiche une boîte de dialogue demandant à l'utilisateur de mettre à jour l'application vers la nouvelle version ou de la supprimer complètement.
Créations de remplacement et navigateurs compatibles
Invite de réinstallation manuelle
Pour les navigateurs qui ne sont pas compatibles avec la migration automatique, l'utilisateur conservera l'ancienne installation. Vous devez implémenter un élément d'interface utilisateur (par exemple, une bannière de notification) sur l'ancienne origine qui redirige l'utilisateur vers le nouveau site.
Les paramètres de l'utilisateur ne seront pas migrés, et l'ancienne application ne sera pas automatiquement désinstallée.