Yüklü bir web uygulamasını (PWA) yeni bir kaynağa aktarmak için genellikle kullanıcıların eski uygulamayı manuel olarak kaldırıp yeni uygulamayı yeniden yüklemesi gerekir. Bu işlem genellikle görev çubuğu kısayolları ve bildirim izinleri gibi işletim sistemi düzeyindeki entegrasyonun kaybolmasına neden olur. Web Uygulaması Kaynak Taşıma, eski ve yeni kaynaklar arasında güvenli bir aktarım sağlayarak bu geçişi otomatikleştirir.
Taşıma işlemi iki adımlı bir doğrulama sürecidir: Yeni site, eski siteyi öncülü olarak talep eder ve eski site, yeni siteyi halefi olarak yetkilendirir.
Önemli Kısıtlamalar
Uygulama adımları
1. "Same-Site" durumunun doğrulanması
ZORUNLU: Hem yeni hem de eski kaynaklar "Same-Site" olmalıdır. Aynı kaydedilebilir alana (eTLD+1) sahip olmalıdır.
- İzin verilir:
app.example.com'dennew.example.com'e taşıma (her ikisi deexample.compaylaşır). - İzin verilir:
example.com/app1platformundanexample.com/app2platformuna geçiş. - Yasak:
example.comalanındanexample.orgalanına (farklı kaydedilebilir alanlar) geçiş yapma.
2. Yeni uygulamayı yapılandırma
Yeni uygulama, önceki uygulamayı beyan etmelidir. Yeni uygulamada id olmalıdır.
Yeni sitenin manifest.json bölümüne migrate_from alanını ekleyin:
{
"name": "My New App",
"id": "/demo.html",
"start_url": "/demo.html",
"migrate_from": [
{
"id": "https://old-app.example.com/"
}
]
}
3. Eski kaynakta taşıma işlemini yetkilendirme
Kaynak ele geçirme saldırılarını önlemek için eski kaynak, taşıma işlemini açıkça yetkilendirmelidir. .well-known dizininden sunulan bir yapılandırma dosyası oluşturun.
Dosya konumu: https://old-app.example.com/.well-known/web-app-origin-association
{
"https://new-app.example.com": {
"allow_migration": true
}
}
4. Geçişi proaktif olarak bildirme (isteğe bağlı)
Mevcut kullanıcıların yeni siteyi ziyaret etmesini beklemeden taşıma işlemini hemen tetiklemek için eski sitenin manifest dosyasını migrate_to ipucuyla güncelleyin.
{
"migrate_to": [
{
"id": "https://new-app.example.com/",
"install_url": "https://new-app.example.com/demo.html"
}
]
}
5. Kullanıcıların verilerini taşımasını zorunlu kılma (isteğe bağlı)
Varsayılan olarak, kullanıcılara taşıma işlemi önerilir. Geçişi zorunlu hale getirmek için yeni uygulamanın manifest dosyasında behavior değerini force olarak ayarlayın.
{
"migrate_from": [
{
"id": "https://old-app.example.com/",
"behavior": "force"
}
]
}
Not: behavior: "force", eski uygulamayı sessizce silmez. Tarayıcı, kullanıcıya yeni sürüme Güncelleme veya uygulamayı tamamen Kaldırma seçeneklerini sunan bir iletişim kutusu gösterir.
Yedekler ve tarayıcı desteği
Manuel yeniden yükleme istemi
Otomatik taşımayı desteklemeyen tarayıcılarda kullanıcı eski yüklemeyi kullanmaya devam eder. Eski kaynakta, kullanıcıyı yeni siteye yönlendiren bir kullanıcı arayüzü öğesi (ör. bildirim banner'ı) uygulamanız gerekir.
Kullanıcının ayarları taşınmaz ve eski uygulama otomatik olarak kaldırılmaz.