السماح لتطبيقات الويب المتقدّمة المثبّتة بمعالجة الروابط التي تستخدم بروتوكولًا معيّنًا للحصول على تجربة أكثر تكاملاً
معلومات أساسية عن المخططات (المعروفة أيضًا باسم البروتوكولات)
معرّف الموارد المنتظم (URI) هو تسلسل مكثّف من الأحرف يحدِّد موردًا مجردًا أو ماديًا. يبدأ كل معرّف موارد منتظم باسم مخطّط يشير إلى مواصفة لمنح المعرّفات ضمن هذا المخطّط. وبالتالي، فإنّ بنية URI هي نظام تسمية موحّد وقابل للتوسيع يمكن أن تحدّد مواصفات كل مخطّط بشكل أكبر من بنية المعرّفات ودلالاتها باستخدام هذا المخطّط. تُعرف المخططات أيضًا باسم البروتوكولات. يمكنك الاطّلاع على بعض الأمثلة على المخططات أدناه.
tel:+1-816-555-1212
mailto:[email protected]
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 المستنِد إلى البيان إجراءً إضافيًا من المستخدم بخلاف عملية تثبيت تطبيق 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 وانقر على اختبار البروتوكول لفتح صفحة القهوة في تطبيق الويب التقدّمي.