Wenn eine installierte Web-App (PWA) zu einem neuen Ursprung übertragen wird, müssen Nutzer die alte App in der Regel manuell deinstallieren und die neue App neu installieren. Dabei geht in der Regel die Integration auf Betriebssystemebene verloren, z. B. Verknüpfungen in der Taskleiste und Berechtigungen zum Senden von Benachrichtigungen. Die Web App Origin Migration automatisiert diesen Übergang, indem sie eine sichere Übergabe zwischen dem alten und dem neuen Ursprung herstellt.
Die Migration ist ein zweistufiger Bestätigungsprozess: Die neue Website beansprucht die alte Website als Vorgänger und die alte Website autorisiert die neue Website als Nachfolger.
Wichtige Einschränkungen
Implementierungsschritte
1. Überprüfung des Same-Site-Status
OBLIGATORISCH: Sowohl der neue als auch der alte Ursprung MÜSSEN „Same-Site“ sein. Sie müssen dieselbe registrierbare Domain (eTLD+1) haben.
- Zulässig: Migration von
app.example.comzunew.example.com(beide haben dieselbeexample.com). - Zulässig: Migration von
example.com/app1zuexample.com/app2. - Unzulässig: Migration von
example.comzuexample.org(verschiedene registrierbare Domains).
2. Neue Anwendung konfigurieren
In der neuen Anwendung muss die Vorgängeranwendung deklariert werden. Die neue App muss eine id haben.
Fügen Sie in der manifest.json der neuen Website das Feld migrate_from hinzu:
{
"name": "My New App",
"id": "/demo.html",
"start_url": "/demo.html",
"migrate_from": [
{
"id": "https://old-app.example.com/"
}
]
}
3. Migration auf dem alten Ursprung autorisieren
Der alte Ursprung muss die Migration explizit autorisieren, um ein Hijacking des Ursprungs zu verhindern. Erstellen Sie eine Konfigurationsdatei, die aus dem Verzeichnis .well-known bereitgestellt wird.
Dateispeicherort: https://old-app.example.com/.well-known/web-app-origin-association
{
"https://new-app.example.com": {
"allow_migration": true
}
}
4. Proaktiv auf die Migration hinweisen (optional)
Wenn Sie die Migration für bestehende Nutzer sofort auslösen möchten, ohne darauf zu warten, dass sie die neue Website besuchen, aktualisieren Sie das Manifest der alten Website mit einem migrate_to-Hinweis.
{
"migrate_to": [
{
"id": "https://new-app.example.com/",
"install_url": "https://new-app.example.com/demo.html"
}
]
}
5. Nutzer zur Migration auffordern (optional)
Standardmäßig wird Nutzern eine Migration vorgeschlagen. Wenn Sie die Umstellung erzwingen möchten, legen Sie im Manifest der neuen App behavior auf force fest.
{
"migrate_from": [
{
"id": "https://old-app.example.com/",
"behavior": "force"
}
]
}
Hinweis: behavior: "force" löscht die alte App nicht im Hintergrund. Im Browser wird ein Dialogfeld angezeigt, in dem der Nutzer aufgefordert wird, entweder die neue Version zu aktualisieren oder die App vollständig zu entfernen.
Fallbacks und Browserunterstützung
Aufforderung zur manuellen Neuinstallation
Bei Browsern, die die automatische Migration nicht unterstützen, bleibt der Nutzer bei der alten Installation. Sie sollten ein UI-Element (z.B. ein Benachrichtigungsbanner) auf dem alten Ursprung implementieren, das den Nutzer zur neuen Website weiterleitet.
Die Einstellungen des Nutzers werden nicht migriert und die alte App wird nicht automatisch deinstalliert.