السماح لتطبيقات الويب المتقدّمة المثبّتة بمعالجة الروابط التي تستخدم بروتوكولًا معيّنًا للحصول على تجربة أكثر تكاملاً
معلومات أساسية عن المخطّطات (المعروفة أيضًا باسم البروتوكولات)
معرّف الموارد المنتظم (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
.
لتوضيح ذلك، إليك مثال ملموس على العملية:
- يزور المستخدِم موقعًا إلكترونيًا على العنوان
https://coffeeshop.example.com/
يُجري المكالمة التالية:navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s')
. - في وقت لاحق، أثناء زيارة
https://randomsite.example.com/
، ينقر المستخدِم على رابط مثل<a href="web+coffee:latte-macchiato">All about latte macchiato</a>
. - ويؤدي ذلك إلى انتقال المتصفِّح إلى عنوان 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) المستند إلى البيان اتّخاذ إجراء إضافي من المستخدم باستثناء تثبيت التطبيق الذي يبدأه المستخدم.
حالات الاستخدام
- في تطبيق مخصّص للأجهزة الجوّالة متوافق مع الويب لمعالجة النصوص، يصادف المستخدم في مستند رابطًا يؤدي إلى عرض تقديمي مثل
web+presentations://deck2378465
. عندما ينقر المستخدم على الرابط، يتم تلقائيًا فتح تطبيق PWA المخصّص للعرض في النطاق الصحيح وعرض مجموعة الشرائح. - في تطبيق محادثة خاص بمنصّة معيّنة، يتلقّى المستخدم في رسالة المحادثة رابطًا لعنوان 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.
- انتقِل إلى https://protocol-handler.glitch.me/، وثبِّت
تطبيق الويب التقدّمي (PWA)، ثم أعِد تحميل التطبيق بعد التثبيت. سجَّل المتصفّح الآن تطبيق الويب التقدّمي كمعالج لبروتوكول
web+coffee
مع نظام التشغيل. - في نافذة تطبيق الويب المتوافق مع الأجهزة الجوّالة المثبَّت، انقر على الرابط
https://protocol-handler-link.glitch.me/. سيؤدي ذلك إلى
فتح علامة تبويب متصفّح جديدة تتضمّن ثلاثة روابط. انقر على الخيار الأول أو الثاني (لاتيه ماكياتو أو
أمريكانو). سيعرض لك المتصفِّح الآن طلبًا ويسألك ما إذا كان بإمكانك استخدام التطبيق كمعالج بروتوكول لبروتوكول
web+coffee
. في حال الموافقة، سيتم فتح تطبيق الويب التقدّمي وعرض القهوة التي اخترتها. - للمقارنة مع العملية التقليدية التي تستخدِم
navigator.registerProtocolHandler()
، انقر على الزر تسجيل معالِج البروتوكول في تطبيق الويب التقدّمي. ثم في علامة تبويب المتصفح انقر على الرابط الثالث (chai). سيظهر طلب أيضًا، ولكن سيتم بعد ذلك فتح تطبيق الويب التقدّمي في علامة تبويب، وليس في نافذة متصفّح. - أرسِل رسالة إلى نفسك على تطبيق خاص بمنصّة معيّنة، مثل Skype على نظام التشغيل Windows، باستخدام رابط مثل
<a href="web+coffee://americano">Americano</a>
وانقر عليه. من المفترض أن يؤدي ذلك أيضًا إلى فتح تطبيق الويب المتوافق مع الأجهزة الجوّالة المثبَّت.
الاعتبارات الأمنية
بما أنّ تثبيت التطبيقات المتوافقة مع الويب يتطلّب أن يكون السياق آمنًا، يكتسب معالجة البروتوكول هذاقيد . لا يتم عرض قائمة معالِجات البروتوكول المسجّلة على الويب بأي شكل من الأشكال، لذا لا يمكن استخدامها كسمة مميزة.
محاولات التنقّل التي لا يبدأها المستخدم
قد لا تؤدي محاولات التنقّل التي لا يبدأها المستخدم، بل تكون آلية، إلى فتح التطبيقات. لا يمكن استخدام عنوان URL الخاص بالبروتوكول المخصّص إلا في سياقات التصفّح ذات المستوى الأعلى، ولكن لا يمكن استخدامه مثلاً كعنوان URL لإطار iframe.
القائمة المسموح بها للبروتوكولات
تمامًا كما هو الحال مع registerProtocolHandler()
، تتوفّر قائمة مسموح بها بالبروتوكولات التي يمكن للتطبيقات تسجيلها
للتعامل معها.
طلب الموافقة
عند تشغيل تطبيق الويب التقدّمي لأول مرة بسبب بروتوكول تمّ استدعاؤه، سيظهر للمستخدم مربع حوار للحصول على الإذن. سيعرِض مربّع الحوار هذا اسم التطبيق ومصدره، وسيسأل المستخدم عما إذا كان يُسمح للتطبيق بمعالجة الروابط من البروتوكول. إذا رفض المستخدم مربّع حوار الأذونات، سيتجاهل نظام التشغيل معالِج البروتوكول المسجَّل. لإلغاء تسجيل معالج البروتوكول، على المستخدم إلغاء تثبيت تطبيق الويب المتوافق مع الأجهزة الجوّالة الذي سجّله. سيُلغي المتصفّح أيضًا تسجيل معالِج البروتوكول إذا اختار المستخدم "تذكُّر خياري" ثم اختار "عدم السماح".
ملاحظات
يريد فريق Chromium معرفة تجاربك في تسجيل معالِج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA).
أخبِرنا عن تصميم واجهة برمجة التطبيقات.
هل هناك مشكلة في واجهة برمجة التطبيقات لا تعمل على النحو المتوقّع؟ هل هناك طُرق أو سمات مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق حول ملف أمان الحساب؟ يُرجى الإبلاغ عن مشكلة في المواصفات بشأن مستودع GitHub ذي الصلة، أو إضافة أفكارك إلى مشكلة حالية.
الإبلاغ عن مشكلة في التنفيذ
هل واجهت مشكلة في التنفيذ في Chromium؟ أم أنّ عملية التنفيذ مختلفة عن المواصفات؟
يمكنك إرسال بلاغ عن خلل على الرابط new.crbug.com. احرص على تضمين أكبر قدر ممكن من التفاصيل،
وتعليمات بسيطة لإعادة إنتاج الخلل، وأدخِل UI>Browser>WebAppInstalls
في مربّع المكوّنات
. يُعدّ تطبيق Glitch مثاليًا لمشاركة عمليات إعادة الإنتاج بسرعة وسهولة.
إظهار الدعم لواجهة برمجة التطبيقات
هل تخطّط لاستخدام ميزة تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية؟ يساعد دعمك العلني فريق Chromium في تحديد أولويات الميزات ويُظهر لموفّري المتصفّحات الآخرين مدى أهمية إتاحة هذه الميزات.
شارِك كيفية استخدامك له في سلسلة محادثات Discourse في مجموعة عمل Web Interoperability (WICG). يمكنك إرسال تغريدة إلى
@ChromiumDev باستخدام علامة التصنيف
#ProtocolHandler
وإعلامنا بمكان استخدامها وكيفية استخدامها.
روابط مفيدة
الشكر والتقدير
تم تنفيذ تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA) وتحديده من قِبل فابيو روشا، دييغو غونزاليز، كونور مودي، صموئيل تانغ من فريق Microsoft Edge. تمت مراجعة هذه المقالة من قِبل جو ميديلي وفابيو روشا. الصورة الرئيسية من إنشاء JJ Ying على Unsplash.