遷移已安裝網頁應用程式的來源

如要將已安裝的網頁應用程式 (PWA) 轉移至新來源,使用者通常需要手動解除安裝舊應用程式,並重新安裝新應用程式。這個程序通常會導致 OS 層級整合功能遺失,例如工作列捷徑和通知權限。網頁應用程式來源遷移功能會自動執行這項轉換作業,在舊來源和新來源之間建立安全交接。

遷移程序包含兩個驗證步驟:新網站宣告舊網站為前身,舊網站授權新網站為後繼者。

重要限制

導入步驟

1. 驗證「同站」狀態

強制規定:新舊來源必須「同站」。兩者必須使用相同的可註冊網域 (eTLD+1)。

  • 允許:從 app.example.com 遷移至 new.example.com (兩者共用 example.com)。
  • 允許:從 example.com/app1 遷移至 example.com/app2。
  • 禁止:從 example.com 遷移至 example.org (不同的可註冊網域)。

2. 設定新的應用程式

新應用程式必須宣告前身。新應用程式必須有 id。

在新網站的 manifest.json 中,新增 migrate_from 欄位:

{
  "name": "My New App",
  "id": "/demo.html",
  "start_url": "/demo.html",
  "migrate_from": [
    {
      "id": "https://old-app.example.com/"
    }
  ]
}

3. 授權遷移舊來源

舊來源必須明確授權遷移,以防來源遭劫持。建立從 .well-known 目錄提供的設定檔。

檔案位置:https://old-app.example.com/.well-known/web-app-origin-association

{
  "https://new-app.example.com": {
    "allow_migration": true
  }
}

4. 主動發出遷移信號 (選用)

如要立即為現有使用者觸發遷移作業,而不等待他們造訪新版協作平台網站,請使用 migrate_to 提示更新舊網站的資訊清單。

{
  "migrate_to": [
    {
      "id": "https://new-app.example.com/",
      "install_url": "https://new-app.example.com/demo.html"
    }
  ]
}

5. 要求使用者遷移 (選用)

根據預設,系統會建議使用者遷移。如要強制轉換,請在新應用程式的資訊清單中,將 behavior 設為 force。

{
  "migrate_from": [
    {
      "id": "https://old-app.example.com/",
      "behavior": "force"
    }
  ]
}

注意:behavior: "force" 不會自動刪除舊版應用程式。瀏覽器會向使用者顯示對話方塊,要求他們「更新」至新版本,或完全「移除」應用程式。

備用方案和瀏覽器支援

手動重新安裝提示

如果瀏覽器不支援自動遷移,使用者會繼續使用舊版安裝。您應在舊來源上導入 UI 元素 (例如通知橫幅),將使用者導向新版協作平台網站。

系統不會遷移使用者的設定,也不會自動解除安裝舊版應用程式。