Di chuyển nguồn gốc của một ứng dụng web đã cài đặt

Để chuyển một ứng dụng web tiến bộ (PWA) đã cài đặt sang một nguồn gốc mới, người dùng thường phải gỡ cài đặt ứng dụng cũ theo cách thủ công rồi cài đặt lại ứng dụng mới. Quá trình này thường làm mất khả năng tích hợp ở cấp hệ điều hành, chẳng hạn như lối tắt trên thanh tác vụ và quyền gửi thông báo. Tính năng Di chuyển nguồn gốc ứng dụng web tự động hoá quá trình chuyển đổi này bằng cách thiết lập một quy trình chuyển giao an toàn giữa nguồn gốc cũ và nguồn gốc mới.

Quá trình di chuyển là một quy trình xác minh gồm hai bước: trang web mới xác nhận trang web cũ là trang web tiền nhiệm và trang web cũ uỷ quyền cho trang web mới làm trang web kế nhiệm.

Các quy tắc ràng buộc quan trọng

Các bước triển khai

1. Xác minh trạng thái "Cùng trang web"

BẮT BUỘC: Cả nguồn gốc mới và cũ ĐỀU PHẢI là "Cùng trang web". Các trang web này phải có cùng Miền có thể đăng ký (eTLD+1).

  • Được phép: Di chuyển từ app.example.com sang new.example.com (cả hai đều dùng chung example.com).
  • Được phép: Di chuyển từ example.com/app1 sang example.com/app2.
  • Bị cấm: Di chuyển từ example.com sang example.org (các miền có thể đăng ký khác nhau).

2. Định cấu hình ứng dụng mới

Ứng dụng mới phải khai báo ứng dụng tiền nhiệm. Ứng dụng mới phải có id.

Trong tệp manifest.json của trang web mới, hãy thêm trường migrate_from:

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

3. Uỷ quyền di chuyển trên nguồn gốc cũ

Nguồn gốc cũ phải cho phép di chuyển một cách rõ ràng để ngăn chặn hành vi chiếm đoạt nguồn gốc. Tạo tệp cấu hình được phân phát từ thư mục .well-known.

Vị trí tệp: https://old-app.example.com/.well-known/web-app-origin-association

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

4. Chủ động báo hiệu quá trình di chuyển (Không bắt buộc)

Để kích hoạt quá trình di chuyển ngay lập tức cho người dùng hiện tại mà không cần đợi họ truy cập vào trang web được tạo bằng Google Sites mới, hãy cập nhật tệp kê khai của trang web cũ bằng gợi ý migrate_to.

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

5. Yêu cầu người dùng di chuyển (Không bắt buộc)

Theo mặc định, người dùng sẽ được đề xuất di chuyển. Để bắt buộc chuyển đổi, hãy đặt behavior thành force trong tệp kê khai của ứng dụng mới.

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

Lưu ý: behavior: "force" không tự động xoá ứng dụng cũ. Trình duyệt sẽ hiển thị cho người dùng một hộp thoại yêu cầu họ Cập nhật lên phiên bản mới hoặc Xoá hoàn toàn ứng dụng.

Dự phòng và hỗ trợ trình duyệt

Lời nhắc cài đặt lại theo cách thủ công

Đối với những trình duyệt không hỗ trợ di chuyển tự động, người dùng sẽ tiếp tục sử dụng bản cài đặt cũ. Bạn nên triển khai một phần tử trên giao diện người dùng (ví dụ: biểu ngữ thông báo) trên nguồn gốc cũ để chuyển hướng người dùng đến Sites mới.

Chế độ cài đặt của người dùng sẽ không được di chuyển và ứng dụng cũ sẽ không tự động bị gỡ cài đặt.