تحديد تطبيقات الويب التقدّمية (PWA) بشكل فريد باستخدام خاصية معرّف بيان تطبيق الويب

عندما يثبّت المستخدم تطبيق الويب التقدّمي (PWA)، يحتاج المتصفّح إلى طريقة لتحديد تطبيق الويب التقدّمي (PWA) بشكلٍ فريد. تطبيق الويب التقدّمي (PWA). ولكن حتى وقت قريب، لم تتضمن مواصفات بيان تطبيق الويب ستحدد طريقة لتعريف تطبيق الويب التقدّمي (PWA) بشكلٍ فريد، مع ترك المتصفّحات لاتخاذ القرار مما يؤدي إلى عمليات تنفيذ مختلفة. في بعض المتصفّحات، يتم تغيير القيمة start_url بينما في حالات أخرى، يُستخدم المسار إلى ملف البيان، مما يجعل من المستحيل تحديث أي من هذه الحقول.

لحلّ هذه المشكلة، تتوفّر سمة id جديدة اختيارية في تطبيق الويب. بمواصفات البيان، التي تتيح لك تحديد المعرّف المستخدم تطبيق الويب التقدّمي (PWA). تؤدي إضافة السمة id إلى البيان إلى إزالة التبعية start_url أو موقع البيان، وتتيح ليتم تحديثها في المستقبل.

ما هي وظيفة السمة id؟

تمثّل السمة id هوية تطبيق الويب التقدّمي (PWA) للمتصفّح. فعندما يرى المتصفح بيانًا ليس له هوية تطابق تطبيق ويب تقدّمي (PWA) سبق أن تم تثبيته، فسيتعامل مع التطبيق كتطبيق ويب تقدّمي (PWA) جديد، حتى إذا تم عرضه من عنوان URL نفسه الخاص بتطبيق ويب تقدّمي (PWA) آخر. ولكن إذا رأى بيانًا بهوية الذي يتطابق مع تطبيق الويب التقدّمي (PWA) المثبَّت مسبقًا، سيتعامل مع ذلك التطبيق على أنّه تطبيق الويب التقدّمي (PWA) المثبَّت.

دعم المتصفح

تمت إتاحة السمة id في الإصدار Chrome 96.

ماذا أفعل إذا كان لديّ تطبيق بدون id؟

ليس عليك اتخاذ أي إجراء، ولن يحدث أي إيقاف في حال لا تضِف id إلى بيان تطبيق الويب (ما دامت start_url يظل مسار البيان كما هو). للحفاظ على أمان تطبيق الويب التقدّمي (PWA)، يمكنك إضافة سمة id إلى بيان تطبيق الويب.

كيف يمكنني تحديد id وضبطها؟

الطريقة الأكثر أمانًا ودقة لتحديد id لتطبيق الويب التقدّمي (PWA) في التحقق من القيمة التي يحتسبها Chrome.

  1. باستخدام الإصدار 96 من Chrome أو إصدار أحدث، افتح لوحة البيان في لوحة التطبيق في "أدوات مطوري البرامج".
  2. مرِّر مؤشر الماوس فوق رمز (!) بجانب السمة رقم تعريف التطبيق. تشير رسالة الأشكال البيانية لن يظهر رمز تلميح (!) إلا عند عدم تحديد id في ملف بيان تطبيق الويب.
  3. لاحِظ قيمة id المعروضة في تلميح الأداة (انظر لقطة الشاشة أدناه).
  4. إضافة سمة id إلى بيان تطبيق الويب باستخدام قيمة id المعروضة في التلميح.

تلميح يعرض 'id'

{
  ...
  id: "/?homescreen=1",
  start_url: "/?homescreen=1",
  ...
}

ماذا يحدث إذا لم يتم ضبط id؟

لا داعي للقلق، لن تتعطّل أي أجهزة. بدءًا من Chrome 96، سينشئ المتصفِّح علامة id في حال عدم توفّر رمز في البيان. استنادًا إلى start_url في بيان تطبيق الويب.

تتيح إضافة id إلى بيان تطبيق الويب إمكانية تغيير start_url ومسار البيان (إذا وفقط إذا كانت المصدر كما هو!)، لأن المتصفح سوف تحدّد تطبيق الويب التقدّمي استنادًا إلى السمة id المحدّدة، بدلاً من start_url أو مسار البيان.

كيف يمكنني اختبار ذلك؟

لاختبار السلوك، اتبع الخطوات التالية:

  1. ثبِّت تطبيق الويب التقدّمي (PWA).
  2. افتح about://web-app-internals/ وتحقَّق من unhashed_app_id السمة start_url لتطبيق الويب التقدّمي (PWA) المثبَّت.
  3. عليك إضافة سمة id إلى بيان تطبيق الويب باتّباع الخطوات الواردة في كيف أحدّد id وأضبطه أعلاه.
  4. أعِد تشغيل المتصفّح باستخدام chrome://restart، وشغِّل تطبيق الويب التقدّمي من about://apps، ثم أغلِق تطبيق الويب التقدّمي (PWA) لفرض إعادة تحميل ملف البيان.
  5. افتح about://web-app-internals/ وتحقَّق من السمة manifest_id بحثًا عن تطبيق الويب التقدّمي (PWA) المثبّت للتأكّد من عدم تغييره
  6. يمكنك تغيير start_url في بيان تطبيق الويب.
  7. أعِد تشغيل المتصفّح باستخدام chrome://restart، وشغِّل تطبيق الويب التقدّمي من about://apps، ثم أغلِق تطبيق الويب التقدّمي (PWA) لفرض إعادة تحميل ملف البيان.
  8. افتح about://web-app-internals/ وتحقَّق من السمة start_url بحثًا عن تطبيق الويب التقدّمي (PWA) المثبَّت للتحقّق من أنّه تم تحديثه على النحو المتوقع.

مراجع إضافية