نقل مصدر تطبيق ويب مثبَّت

ميزات الويب: نقل مصدر تطبيق الويب

يتطلّب نقل تطبيق ويب مثبَّت (PWA) إلى مصدر جديد عادةً من المستخدمين إلغاء تثبيت التطبيق القديم يدويًا وإعادة تثبيت التطبيق الجديد. تؤدي هذه العملية عادةً إلى فقدان التكامل على مستوى نظام التشغيل، مثل اختصارات شريط المهام وأذونات إرسال الإشعارات. تعمل ميزة "نقل مصدر تطبيق الويب" على تنفيذ عملية النقل هذه تلقائيًا من خلال إنشاء عملية تسليم آمنة بين المصدرَين القديم والجديد.

تتألف عملية نقل البيانات من خطوتَين لإثبات الملكية: يطالب الموقع الإلكتروني الجديد بالموقع القديم باعتباره سلفه، ويسمح الموقع القديم للموقع الجديد بأن يكون خلفًا له.

قيود مهمة

خطوات التنفيذ

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. الإشارة إلى عملية النقل بشكل استباقي (اختياري)

لبدء عملية نقل البيانات فورًا للمستخدمين الحاليين بدون انتظار زيارتهم لموقع في الإصدار الجديد من "مواقع Google"، يجب تعديل ملف البيان الخاص بالموقع الإلكتروني القديم باستخدام تلميح 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" التطبيق القديم تلقائيًا، بل سيعرض المتصفّح مربّع حوار يطلب من المستخدم إما تحديث التطبيق إلى الإصدار الجديد أو إزالته بالكامل.

الخيارات الاحتياطية والتوافق مع المتصفّحات

طلب إعادة التثبيت يدويًا

بالنسبة إلى المتصفّحات التي لا تتيح النقل التلقائي، سيظل المستخدم على الإصدار القديم. يجب تنفيذ عنصر في واجهة المستخدم (مثل بانر إشعار) على المصدر القديم يوجّه المستخدم إلى موقع في الإصدار الجديد من "مواقع Google".

ولن يتم نقل إعدادات المستخدم، ولن يتم إلغاء تثبيت التطبيق القديم تلقائيًا.