يمكنك السماح لتطبيقات الويب التقدّمية المثبّتة بمعالجة عناوين URL للحصول على تجربة أكثر تكاملاً.
ما هي تطبيقات الويب التقدّمية (PWA) التي تعمل كمعالِجات لعناوين URL؟
تخيَّل أنّك تدردش مع صديق باستخدام تطبيق مراسلة فورية، مثل "الرسائل" على نظام التشغيل macOS،
وأنّكما تتحدّثان عن الموسيقى. لنفترض أيضًا أنّكما ثبّتما تطبيق الويب التقدّمي (PWA) لـ "music.example.com"
على جهازيكما. إذا أردت مشاركة أغنيتك المفضّلة مع صديقك، يمكنك إرسال رابط عميق مثل https://music.example.com/rick-astley/never-gonna-give-you-up. بما أنّ هذا الرابط طويل جدًا، قد يكون مطوّرو "music.example.com" قد قرّروا إضافة رابط قصير آخر لكل أغنية، مثل https://🎵.example.com/r-a/n-g-g-y-u.
تسمح ميزة "تطبيقات الويب التقدّمية كمعالِجات لعناوين URL" لتطبيقات مثل "music.example.com" بتسجيل نفسها كمعالِجات لعناوين URL التي تتطابق مع أنماط مثل "https://music.example.com" أو "https://*.music.example.com" أو "https://🎵.example.com"، بحيث يتم فتح الروابط من خارج تطبيق الويب التقدّمي، على سبيل المثال، من تطبيق مراسلة فورية أو برنامج بريد إلكتروني، في تطبيق الويب التقدّمي المثبَّت بدلاً من فتحها في علامة تبويب متصفّح.
تتألف ميزة PWA كمعالِجات لعناوين URL من إضافتَين:
- عضو بيان تطبيق الويب
"url_handlers" - تنسيق ملف
web-app-origin-associationللتحقّق من صحة ارتباطات عناوين URL داخل النطاق وخارجه
حالات الاستخدام المقترَحة لتطبيقات الويب التقدّمية (PWA) كمعالِجات عناوين URL
تشمل الأمثلة على المواقع الإلكترونية التي قد تستخدم واجهة برمجة التطبيقات هذه ما يلي:
- المواقع الإلكترونية لبث الموسيقى أو الفيديوهات، بحيث يتم فتح روابط الأغاني أو قوائم التشغيل في تجربة المشغّل في التطبيق
- تطبيقات قراءة الأخبار أو RSS، بحيث يتم فتح المواقع الإلكترونية التي تتم متابعتها أو الاشتراك فيها في وضع القارئ في التطبيق
كيفية استخدام تطبيقات الويب التقدّمية كمعالِجات لعناوين URL
التفعيل باستخدام about://flags
لتجربة تطبيقات الويب التقدّمية (PWA) كمعالِجات عناوين URL محليًا، بدون رمز مميّز لمرحلة التجربة والتقييم، فعِّل العلامة #enable-desktop-pwas-url-handling في about://flags.
عنصر بيان تطبيق الويب "url_handlers"
لربط تطبيق ويب تقدّمي مثبَّت بأنماط عناوين URL، يجب تحديد هذه الأنماط في بيان تطبيق الويب. ويتم ذلك من خلال عضو "url_handlers". وتقبل مصفوفة من العناصر التي تحتوي على السمة origin، وهي سمة string مطلوبة تمثّل نمطًا لمطابقة المصادر. يُسمح لهذه الأنماط بأن تتضمّن بادئة حرف بدل (*) من أجل تضمين نطاقات فرعية متعددة (مثل https://*.example.com). ويمكن لهذا التطبيق على الويب معالجة عناوين URL التي تتطابق مع هذه المصادر. يُفترض دائمًا أن يكون المخطط https://، ولكن يجب ذكره صراحةً.
يوضّح المقتطف التالي من بيان تطبيق الويب كيف يمكن لمثال تطبيق الويب التقدّمي (PWA) للموسيقى من الفقرة التمهيدية إعداد ذلك. يضمن الإدخال الثاني الذي يتضمّن حرف البدل ("https://*.music.example.com")
تفعيل التطبيق أيضًا لـ https://www.music.example.com أو أمثلة أخرى محتملة مثل
https://marketing-activity.music.example.com.
{
"url_handlers": [
{
"origin": "https://music.example.com"
},
{
"origin": "https://*.music.example.com"
},
{
"origin": "https://🎵.example.com"
}
]
}
ملف web-app-origin-association
بما أنّ تطبيق الويب التقدّمي (PWA) يتوفّر على مصدر مختلف (music.example.com) عن بعض عناوين URL التي يحتاج إلى معالجتها (مثل https://🎵.example.com)، يحتاج التطبيق إلى إثبات ملكية هذه المصادر الأخرى. ويحدث ذلك في ملف web-app-origin-association مستضاف على المصادر الأخرى.
يجب أن يحتوي هذا الملف على ملف JSON صالح. البنية ذات المستوى الأعلى هي كائن، مع عضو باسم "web_apps". هذا العضو هو مصفوفة من العناصر، ويمثّل كل عنصر إدخالاً لتطبيق ويب فريد. يحتوي كل عنصر على:
| الحقل | الوصف | النوع | تلقائي |
|---|---|---|---|
"manifest" |
(مطلوب) سلسلة عنوان URL لبيان تطبيق الويب الخاص بتطبيق الويب التقدّمي (PWA) المرتبط | string |
لا ينطبق |
"details" |
(اختياري) عنصر يحتوي على مصفوفات من أنماط عناوين URL المضمّنة والمستبعَدة | object |
لا ينطبق |
يحتوي كل عنصر "details" على ما يلي:
| الحقل | الوصف | النوع | تلقائي |
|---|---|---|---|
"paths" |
(اختياري) مصفوفة من سلاسل المسارات المسموح بها | string[] |
[] |
"exclude_paths" |
(اختياري) مصفوفة من سلاسل المسارات غير المسموح بها | string[] |
[] |
في ما يلي مثال على ملف web-app-origin-association لتطبيق الويب التقدّمي (PWA) للموسيقى المذكور أعلاه. وستتم استضافته على المصدر 🎵.example.com، كما أنّه ينشئ عملية الربط بتطبيق الويب التقدّمي (PWA) music.example.com، الذي يتم تحديده من خلال عنوان URL لبيان تطبيق الويب.
{
"web_apps": [
{
"manifest": "https://music.example.com/manifest.json",
"details": {
"paths": ["/*"],
"exclude_paths": ["/internal/*"]
}
}
]
}
متى يتطابق عنوان URL؟
يتطابق تطبيق الويب التقدّمي مع عنوان URL لمعالجته في حال استيفاء الشرطَين التاليَين:
- يتطابق عنوان URL مع إحدى سلاسل المصدر في
"url_handlers". - يستطيع المتصفّح التحقّق من صحة الملف
web-app-origin-associationالمعنيّ الذي يوافق كل مصدر على السماح لهذا التطبيق بمعالجة عنوان URL هذا.
بشأن العثور على ملفات web-app-origin-association
لكي يكتشف المتصفّح ملف web-app-origin-association، على المطوّرين
وضع ملف web-app-origin-association في
مجلد /.well-known/ في جذر التطبيق.
ولكي ينجح ذلك، يجب أن يكون اسم الملف web-app-origin-association بالضبط.
عرض توضيحي
لاختبار تطبيقات الويب التقدّمية كمعالِجات لعناوين URL، تأكَّد من ضبط علامة المتصفّح كما هو موضّح، ثم ثبِّت تطبيق الويب التقدّمي على https://mandymsft.github.io/pwa/. من خلال الاطّلاع على بيان تطبيق الويب، يمكنك معرفة أنّه يعالج عناوين URL التي تتضمّن أنماط عناوين URL التالية: https://mandymsft.github.io وhttps://luhuangmsft.github.io. بما أنّ هذا الأخير يقع في مصدر مختلف (luhuangmsft.github.io)
عن تطبيق الويب التقدّمي، يحتاج تطبيق الويب التقدّمي على mandymsft.github.io إلى إثبات الملكية، ويتم ذلك باستخدام
ملف web-app-origin-association المستضاف على
https://luhuangmsft.github.io/.well-known/web-app-origin-association.
لاختبار ما إذا كان يعمل بالفعل، أرسل لنفسك رسالة اختبار باستخدام تطبيق مراسلة فورية من اختيارك أو بريد إلكتروني يتم عرضه في برنامج بريد إلكتروني غير مستند إلى الويب مثل Mail على macOS. يجب أن تحتوي الرسالة الإلكترونية أو الرسالة النصية على أحد الرابطَين https://mandymsft.github.io أو https://luhuangmsft.github.io. من المفترض أن يتم فتح كليهما في تطبيق الويب التقدّمي المثبَّت.

الأمان والأذونات
صمّم فريق Chromium تطبيقات الويب التقدّمية ونفّذها كمعالِجات لعناوين URL باستخدام المبادئ الأساسية المحدّدة في التحكّم في الوصول إلى ميزات منصة الويب الفعّالة، بما في ذلك تحكّم المستخدم والشفافية وسهولة الاستخدام.
تحكُّم المستخدمين
إذا تم تسجيل أكثر من تطبيق ويب تقدّمي واحد كمعالج لعنوان URL لنمط عنوان URL معيّن، سيُطلب من المستخدم اختيار تطبيق الويب التقدّمي الذي يريد معالجة النمط باستخدامه، إن وُجد. لا يتعامل هذا الاقتراح مع عمليات التنقّل التي تبدأ في علامة تبويب المتصفّح، بل يهدف صراحةً إلى عمليات التنقّل التي تبدأ خارج المتصفّح.
الشفافية
إذا تعذّر إكمال عملية التحقّق من الربط اللازمة بنجاح أثناء تثبيت تطبيق الويب التقدّمي (PWA) لأي سبب، لن يسجّل المتصفّح التطبيق كمعالج عناوين URL نشط لعناوين URL المتأثرة. يمكن استخدام معالجات عناوين URL، في حال تنفيذها بشكل غير صحيح، للاستيلاء على زيارات المواقع الإلكترونية. لهذا السبب، تُعدّ آلية ربط التطبيقات جزءًا مهمًا من المخطط.
يمكن للتطبيقات المخصّصة لمنصات معيّنة استخدام واجهات برمجة التطبيقات الخاصة بنظام التشغيل لتعداد التطبيقات المثبّتة على نظام المستخدم. على سبيل المثال، يمكن للتطبيقات على نظام التشغيل Windows استخدام واجهة برمجة التطبيقات
FindAppUriHandlersAsync
لتعداد معالِجات عناوين URL. إذا تم تسجيل تطبيقات الويب التقدّمية كمعالِجات لعناوين URL على مستوى نظام التشغيل في Windows، سيكون وجودها مرئيًا للتطبيقات الأخرى.
استمرار الأذونات
يمكن للمصدر تعديل ارتباطاته بتطبيقات الويب التقدّمية في أي وقت. ستحاول المتصفّحات بانتظام إعادة التحقّق من عمليات الربط لتطبيقات الويب المثبَّتة. إذا تعذّرت إعادة التحقّق من صحة تسجيل معالج عناوين URL بسبب تغيير بيانات الربط أو عدم توفّرها، سيزيل المتصفّح عمليات التسجيل.
الملاحظات
يريد فريق Chromium معرفة تجاربك مع تطبيقات الويب التقدّمية (PWA) بصفتها معالِجات عناوين URL.
أخبِرنا عن تصميم واجهة برمجة التطبيقات
هل هناك مشكلة في واجهة برمجة التطبيقات لا تعمل على النحو المتوقّع؟ أو هل هناك طرق أو خصائص مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق حول نموذج الأمان؟ يمكنك الإبلاغ عن مشكلة في المواصفات في مستودع GitHub المقابل، أو إضافة أفكارك إلى مشكلة حالية.
الإبلاغ عن مشكلة في عملية التنفيذ
هل عثرت على خطأ في تنفيذ Chromium؟ أم أنّ التنفيذ يختلف عن المواصفات؟
يمكنك الإبلاغ عن خطأ على new.crbug.com. تأكَّد من تضمين أكبر قدر ممكن من التفاصيل والتعليمات لإعادة إنتاج الخطأ، وأدخِل UI>Browser>WebAppInstalls في مربّع المكوّنات.
إظهار الدعم لواجهة برمجة التطبيقات
هل تخطّط لاستخدام تطبيقات الويب التقدّمية كمعالِجات لعناوين URL؟ يساعد دعمك العلني فريق Chromium في تحديد أولويات الميزات، كما يوضّح لمورّدي المتصفّحات الآخرين مدى أهمية توفير هذه الميزات.
أرسِل تغريدة إلى @ChromiumDev باستخدام الهاشتاغ
#URLHandlers وأخبِرنا
بمكان وكيفية استخدامك له.
روابط مفيدة
- شرح علني
- Demo | Demo source
- خطأ في تتبُّع Chromium
- إدخال ChromeStatus.com
- مكوّن Blink:
UI>Browser>WebAppInstalls - مراجعة TAG
- مستندات Microsoft
الإقرارات
تم تحديد ميزة "تطبيقات الويب التقدّمية كمعالِجات لعناوين URL" وتنفيذها من قِبل لو هوانغ وماندي تشن من فريق Microsoft Edge. راجع هذا المستند جو ميدلي.