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

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

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

معرِّف الموارد المنتظم (URI) (URI) هو تسلسل مكثّف من الأحرف يحدِّد هوية مجردة أو مورد مادي. يبدأ كل عنوان URI scheme الذي يشير إلى مواصفات تعيين معرفات ضمن هذا المخطط. وبناءً على ذلك، فإن بناء جملة معرف الموارد المنتظم (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 شبكة البحث تم فك ترميز السلسلة URL ثم تقرأ ?type=web+coffee://latte-macchiato.

موضوع معالجة البروتوكول

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

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

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

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

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

وتم تصميم نموذج لواجهة برمجة التطبيقات (API) الخاصة بتسجيل معالج بروتوكول عناوين 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" وانقر على اختبار البروتوكول لفتح صفحة القهوة في تطبيق الويب التقدّمي (PWA).

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

عرض توضيحي

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

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

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

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

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

محاولات التنقّل التي لا يُجريها المستخدم

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

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

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

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

ملاحظات

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

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

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

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

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

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

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

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

شكر وتقدير

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