تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA)

السماح لتطبيقات الويب المتقدّمة المثبّتة بمعالجة الروابط التي تستخدم بروتوكولًا معيّنًا للحصول على تجربة أكثر تكاملاً

معلومات أساسية عن المخططات (المعروفة أيضًا باسم البروتوكولات)

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

tel:+1-816-555-1212
mailto:Jane.Doe@example.com
news:comp.infosystems.www.servers.unix
https://web.dev/

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

لمحة عن طريقة registerProtocolHandler()

تتيح طريقة Navigator للمحتوى الآمن فقط registerProtocolHandler() للمواقع الإلكترونية تسجيل قدرتها على فتح أو معالجة مخطّطات عناوين URL معيّنة. لذلك، يجب على المواقع الإلكترونية استدعاء الطريقة على النحو التالي: navigator.registerProtocolHandler(scheme, url). يتم تحديد المَعلمتَين يلي:

  • scheme: سلسلة تحتوي على البروتوكول الذي يريد الموقع الإلكتروني التعامل معه
  • url: سلسلة تحتوي على عنوان URL للمعالج يجب أن يتضمّن عنوان URL هذا %s، كعنصر نائب سيتم استبداله بعنوان URL الذي تمت معالجته.

يجب أن يكون المخطّط أحد المخطّطات المدرَجة في القائمة الآمنة (مثل mailto أو bitcoin أو magnet) أو أن يبدأ بالرمز web+، متبوعًا بحرف واحد على الأقل أو أحرف ASCII أبجدية صغيرة بعد البادئة web+، على سبيل المثال web+coffee.

لتوضيح ذلك، إليك مثالاً ملموسًا على عملية الإعداد:

  1. يزور المستخدِم موقعًا إلكترونيًا على العنوان https://coffeeshop.example.com/ يُجري المكالمة التالية: navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s').
  2. في وقت لاحق، أثناء زيارة https://randomsite.example.com/، ينقر المستخدِم على رابط مثل <a href="web+coffee:latte-macchiato">All about latte macchiato</a>.
  3. يؤدي ذلك إلى توجيه المتصفّح إلى عنوان URL التالي: https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato. بعد فك ترميز عنوان URL لسلاسل البحث، تظهر القيمة ?type=web+coffee://latte-macchiato.

لمحة عن معالجة البروتوكول

تدور آلية تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA) الحالية حول توفير تسجيل معالج البروتوكول كجزء من عملية تثبيت تطبيق ويب تقدّمي من خلال بيانه. بعد تسجيل تطبيق ويب تقدّمي (PWA) كمعالج بروتوكول، عندما ينقر المستخدم على رابط تشعبي باستخدام مخطّط معيّن مثل mailto أو bitcoin أو web+music من متصفّح أو تطبيق خاص بمنصّة معيّنة، سيتم فتح تطبيق الويب التقدّمي المسجَّل وتلقّي عنوان URL. من المهمّ ملاحظة أنّ كلاً من التسجيل المقترَح المستنِد إلى البيان وregisterProtocolHandler() التقليدي يؤديان أدوارًا مشابهة جدًا في الممارسة، مع السماح بإمكانية توفير تجارب مكمّلة للمستخدمين:

  • تشمل أوجه التشابه المتطلبات المتعلقة بقائمة المخططات المسموح بتسجيلها، و اسم المَعلمات وتنسيقها، وما إلى ذلك.
  • إنّ الاختلافات في التسجيل المستنِد إلى البيان دقيقة، ولكن قد تكون مفيدة لتحسين تجربة مستخدمي تطبيقات الويب التقدّمية. على سبيل المثال، قد لا يتطلّب تسجيل تطبيق PWA المستنِد إلى البيان إجراءً إضافيًا من المستخدم بخلاف عملية تثبيت تطبيق PWA التي يبدأها المستخدم.

حالات الاستخدام

  • في تطبيق مخصّص للأجهزة الجوّالة متوافق مع الويب لمعالجة النصوص، يصادف المستخدم في مستند رابطًا يؤدي إلى عرض تقديمي مثل web+presentations://deck2378465. عندما ينقر المستخدم على الرابط، يتم تلقائيًا فتح تطبيق الويب التقدّمي للعرض في النطاق الصحيح وعرض مجموعة الشرائح.
  • في تطبيق محادثة خاص بمنصّة معيّنة، يتلقّى المستخدم في رسالة المحادثة رابطًا لعنوان URL على magnet. عند النقر على الرابط، يتم تشغيل تطبيق ويب تقدّمي (PWA) تم تثبيته لبرنامج تورنت ويبدأ التنزيل.
  • ثبَّت المستخدم تطبيقًا متوافقًا مع الويب لبث الموسيقى. عندما يشارك صديق رابطًا لأغنية مثل web+music://songid=1234&time=0:13 وينقر المستخدم عليه، سيتم تلقائيًا تشغيل تطبيق الويب التقدّمي (PWA) لمشاهدة المحتوى الموسيقي في نافذة مستقلة.

كيفية استخدام تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية

تم وضع نموذج لواجهة برمجة التطبيقات لتسجيل معالِج بروتوكول عنوان URL بالاستناد إلى navigator.registerProtocolHandler(). ولكن هذه المرة، يتمّ تمرير المعلومات بشكل تعريفي من خلال بيان تطبيق الويب في موقع جديد يُسمى "protocol_handlers" يأخذ صفيفًا من العناصر التي تحتوي على المفتاحَين المطلوبَين "protocol" و"url". يوضّح مقتطف الرمز البرمجي أدناه كيفية تسجيل web+tea وweb+coffee. القيم هي سلاسل تحتوي على عنوان URL للمعالج مع العنصر النائب %s المطلوب لعنوان URL الذي تم تشفيره.

{
  "protocol_handlers": [
    {
      "protocol": "web+tea",
      "url": "/tea?type=%s"
    },
    {
      "protocol": "web+coffee",
      "url": "/coffee?type=%s"
    }
  ]
}

تطبيقات متعددة تسجّل نفسها للبروتوكول نفسه

إذا سجّلت تطبيقات متعددة نفسها كمعالِجات للتخطيط نفسه، على سبيل المثال، بروتوكول mailto، سيعرض نظام التشغيل أداة اختيار للمستخدم ويسمح له بتحديد معالِج من بين المعالِجات المسجّلة لاستخدامه.

التطبيق نفسه مسجَّل في بروتوكولات متعددة

يمكن للتطبيق نفسه تسجيل نفسه لبروتوكولات متعددة، كما هو موضّح في نموذج الرمز أعلاه.

تحديثات التطبيقات وتسجيل المعالِج

تتم مزامنة عمليات تسجيل المعالِجين مع أحدث إصدار من البيان المقدَّم من التطبيق. هناك حالتان:

  • يؤدي التحديث الذي يضيف عناصر معالجة جديدة إلى بدء عملية تسجيل عناصر المعالجة (بشكل منفصل عن تثبيت التطبيق).
  • يؤدي التحديث الذي يزيل معالِجات إلى إلغاء تسجيل المعالِج (عملية منفصلة عن إلغاء تثبيت التطبيق).

تصحيح أخطاء معالِج البروتوكول في "أدوات مطوّري البرامج"

انتقِل إلى قسم معالجات البروتوكول من خلال اللوحة التطبيق > بيان التطبيق. يمكنك الاطّلاع على جميع البروتوكولات المتاحة واختبارها هنا.

على سبيل المثال، يمكنك تثبيت تطبيق الويب التجريبي هذا. في القسم معالجات البروتوكول، اكتب americano وانقر على اختبار البروتوكول لفتح صفحة القهوة في تطبيق الويب التقدّمي.

معالجات البروتوكول في لوحة البيان

عرض توضيحي

يمكنك الاطّلاع على عرض تجريبي لتسجيل معالِج بروتوكول عنوان URL لتطبيقات الويب التقدّمية على Glitch.

  1. انتقِل إلى https://protocol-handler.glitch.me/، ثبِّت تطبيق الويب التقدّمي، وأعِد تحميل التطبيق بعد التثبيت. سجَّل المتصفّح الآن تطبيق الويب التقدّمي كمعالج لبروتوكول web+coffee مع نظام التشغيل.
  2. في نافذة تطبيق الويب المتوافق مع الأجهزة الجوّالة المثبَّت، انقر على الرابط https://protocol-handler-link.glitch.me/. سيؤدي ذلك إلى فتح علامة تبويب متصفّح جديدة تتضمّن ثلاثة روابط. انقر على الخيار الأول أو الثاني (لاتيه ماكياتو أو أمريكانو). سيعرض المتصفّح الآن رسالة مطالبة ويسألك عما إذا كنت توافق على أن يكون التطبيق معالج بروتوكول لبروتوكول web+coffee. في حال الموافقة، سيتم فتح تطبيق الويب التقدّمي وعرض القهوة التي اخترتها.
  3. للمقارنة مع العملية التقليدية التي تستخدِم navigator.registerProtocolHandler()، انقر على الزر تسجيل معالِج البروتوكول في تطبيق الويب التقدّمي. بعد ذلك، في علامة التبويب للمتصفّح، انقر على الرابط الثالث (chai). سيظهر طلب أيضًا، ولكن سيتم بعد ذلك فتح تطبيق الويب التقدّمي في علامة تبويب، وليس في نافذة متصفّح.
  4. أرسِل رسالة إلى نفسك على تطبيق خاص بمنصّة معيّنة، مثل Skype على نظام التشغيل Windows، باستخدام رابط مثل <a href="web+coffee://americano">Americano</a> وانقر عليه. من المفترض أن يفتح التطبيق المتوافق مع الأجهزة الجوّالة أيضًا تطبيق الويب المتوافق مع الأجهزة الجوّالة المثبَّت.

عرض توضيحي لمعالج بروتوكول عنوان URL مع علامة تبويب متصفّح تتضمّن روابط على اليسار، ونافذة تطبيق ويب تقدّمي مستقل على اليمين

الاعتبارات الأمنية

بما أنّ تثبيت التطبيقات المتوافقة مع الويب يتطلّب أن يكون السياق آمنًا، يكتسب معالجة البروتوكول هذاقيد. لا يتم عرض قائمة معالِجات البروتوكول المسجّلة على الويب بأي شكل من الأشكال، لذا لا يمكن استخدامها كسمة مميزة.

محاولات التنقّل التي لم يبدأها المستخدم

قد لا تؤدي محاولات التنقّل التي لا يبدأها المستخدم، ولكن تكون آلية، إلى فتح التطبيقات. لا يجوز استخدام عنوان URL المخصّص للبروتوكول إلّا في سياقات التصفّح ذات المستوى الأعلى، وليس مثلاً كعنوان URL لإطار iframe.

القائمة المسموح بها للبروتوكولات

تمامًا كما هو الحال مع registerProtocolHandler()، تتوفّر قائمة مسموح بها بالبروتوكولات التي يمكن للتطبيقات تسجيلها للتعامل معها.

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

ملاحظات

يريد فريق Chromium معرفة تجاربك في تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA).

أخبِرنا عن تصميم واجهة برمجة التطبيقات.

هل هناك مشكلة في واجهة برمجة التطبيقات لا تعمل على النحو المتوقّع؟ هل هناك طُرق أو سمات مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق حول ملف أمان الحساب؟ يمكنك الإبلاغ عن مشكلة في المواصفات في مستودع GitHub المقابل، أو إضافة ملاحظاتك إلى مشكلة حالية.

الإبلاغ عن مشكلة في التنفيذ

هل عثرت على خطأ في عملية تنفيذ Chromium؟ أم أنّ عملية التنفيذ مختلفة عن المواصفات؟ يمكنك إرسال بلاغ عن خلل على الرابط new.crbug.com. احرص على تضمين أكبر قدر ممكن من التفاصيل، وتعليمات بسيطة لإعادة إنتاج الخلل، وأدخِل UI>Browser>WebAppInstalls في مربّع المكوّنات. يُعدّ تطبيق Glitch مثاليًا لمشاركة عمليات إعادة الإنتاج بسرعة وسهولة.

إظهار الدعم لواجهة برمجة التطبيقات

هل تخطّط لاستخدام ميزة تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية؟ يساعد دعمك العلني فريق Chromium في تحديد أولويات الميزات ويُظهر لموفّري المتصفّحات الآخرين مدى أهمية إتاحة هذه الميزات.

شارِك كيفية استخدامك له في سلسلة محادثات Discourse في WICG. أرسِل تغريدة إلى حساب ‎@ChromiumDev باستخدام الهاشتاغ #ProtocolHandler وأطلِعنا على مكان استخدامك للميزة وطريقة استخدامك لها.

الشكر والتقدير

تم تنفيذ تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA) وتحديده من قِبل فابيو روشا، دييغو غونزاليز، كونور مودي، صموئيل تانغ من فريق Microsoft Edge. تمت مراجعة هذه المقالة من قِبل جو ميديل وفابيو روشا. الصورة الرئيسية من إنشاء JJ Ying على Unsplash.