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

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

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

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

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

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

معلومات أساسية عن طريقة 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. بعد ذلك تتم قراءة ?type=web+coffee://latte-macchiato لسلسلة البحث التي تم فك ترميزها.

المقصود بمعالجة البروتوكول

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

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

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

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

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

تم تصميم واجهة برمجة التطبيقات لتسجيل معالج بروتوكول عنوان 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، سيعرض نظام التشغيل للمستخدم أداة الاختيار وسيتيح له اختيار المعالجات المسجّلة التي سيتم استخدامها.

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

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

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

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

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

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

انتقِل إلى قسم معالِجات البروتوكولات عبر التطبيق > جزء ملف البيان. يمكنك عرض جميع البروتوكولات المتوفرة واختبارها هنا.

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

معالِجات البروتوكول في جزء البيان

تجريبي

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

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

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

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

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

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

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

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

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

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

إضافة ملاحظات

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

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

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

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

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

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

هل تخطّط لاستخدام تسجيل معالج بروتوكول عناوين URL لتطبيقات الويب التقدّمية (PWA)؟ يساعد الدعم المتاح للجميع فريق Chromium في تحديد أولويات الميزات ويعرض لمورّدي المتصفِّح الآخرين مدى أهمية دعمهم.

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

شكر وتقدير

تم تنفيذ عملية تسجيل معالج بروتوكول عنوان URL لتطبيقات PWA وتحديدها من قِبل فابيو روتشا وديغو غونزاليز وكونور مودي وسامويل تانغ من فريق Microsoft Edge. راجع هذه المقالة جو ميدلي وفابيو روشا. صورة رئيسية من إعداد جاي جاي ينغ على UnLaunch