السماح لتطبيقات الويب التقدّمية المثبَّتة بمعالجة عناوين URL للحصول على تجربة أكثر تكاملاً
ما هي تطبيقات الويب التقدّمية بصفتها معالجات عناوين URL؟
لنفترض أنّك تتحدّث مع صديق باستخدام تطبيق المراسلة الفورية مثل "الرسائل" على أجهزة macOS وتتحدّث عن الموسيقى. لنفترض أيضًا أنّ كلاكما قد ثبَّت تطبيق الويب التقدّمي 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 لعناوين URL التي تتطابق مع أنماط مثل https://music.example.com
أو https://*.music.example.com
أو
https://🎵.example.com
، وذلك لفتح الروابط من خارج تطبيق الويب التقدّمي، على سبيل المثال، من تطبيق مراسلة فورية أو برنامج بريد إلكتروني
، في تطبيق الويب التقدّمي المثبَّت بدلاً من علامة تبويب المتصفّح.
يتألف تطبيق الويب التقدّمي كمعالِج لعناوين URL من إضافةَين:
- عنصر
"url_handlers"
في بيان تطبيق الويب - تنسيق ملف
web-app-origin-association
للتحقّق من صحة عمليات ربط عناوين URL ضمن النطاق وخارجه
حالات الاستخدام المقترَحة لتطبيقات الويب التقدّمية بصفتها معالجات عناوين URL
تشمل الأمثلة على المواقع الإلكترونية التي قد تستخدم واجهة برمجة التطبيقات هذه ما يلي:
- مواقع إلكترونية لبث الموسيقى أو الفيديوهات تتيح تتبُّع الروابط أو روابط قوائم التشغيل التي تفتح في تجربة المشغّل في التطبيق
- يتم فتح برامج قراءة الأخبار أو خلاصات RSS في وضع قارئ التطبيق على المواقع الإلكترونية التي تتابعها أو التي اشتركت فيها.
كيفية استخدام تطبيقات الويب التقدّمية (PWA) كمعالجات لعناوين URL
التفعيل من خلال about://flags
لتجربة التطبيقات المتوافقة مع الأجهزة الجوّالة على الويب كمعالِجات عناوين URL على الجهاز، بدون رمز مميّز لتجربة المصدر، فعِّل العلامة
#enable-desktop-pwas-url-handling
في about://flags
.
عضو بيان تطبيق الويب "url_handlers"
لربط تطبيق متوافق مُثبَّت بأنماط عناوين URL، يجب تحديد هذه الأنماط في بيان
تطبيق الويب. ويتم ذلك من خلال عضو "url_handlers"
. يقبل هذا المقياس صفيفًا من الكائنات التي تحتوي على سمة
origin
، وهي string
مطلوبة تشكّل نمطًا لمطابقة المصادر. يُسمح لهذه
النماذج باستخدام بادئة حرف بدل (*
) لتضمين نطاقات فرعية متعددة (مثل
https://*.example.com
). يمكن لتطبيق الويب هذا معالجة عناوين URL التي تتطابق مع هذه المصادر. ويُفترض دائمًا أنّ المخطّط هو https://
، ولكن يجب ذكره صراحةً.
يوضّح المقتطف من بيان تطبيق الويب أدناه كيفية إعداد مثال تطبيق الموسيقى على الويب من الفقرة التمهيدية. يضمن الإدخال الثاني الذي يتضمّن الحرف البدل ("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
وبما أنّ تطبيق الويب التقدّمي متوفّر على مصدر مختلف (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
لتطبيق الموسيقى المتوافق مع الويب من المثال أعلاه. سيتم
استضافته على المصدر 🎵.example.com
وإنشاء عملية الربط بتطبيق الويب التقدّمي
music.example.com
، والذي يتم تحديده من خلال عنوان URL لبيان تطبيق الويب.
{
"web_apps": [
{
"manifest": "https://music.example.com/manifest.json",
"details": {
"paths": ["/*"],
"exclude_paths": ["/internal/*"]
}
}
]
}
متى يتطابق عنوان URL؟
تتطابق التطبيقات المتوافقة مع الأجهزة الجوّالة (PWA) مع عنوان 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 تطبيقات الويب التقدّمية (PWA) ونفّذها كمعالجات لعناوين URL باستخدام المبادئ الأساسية الموضّحة في التحكّم في الوصول إلى ميزات النظام الأساسي الفعّال للويب، بما في ذلك إمكانية التحكّم في المستخدم والشفافية وسهولة الاستخدام.
التحكّم في المستخدم
إذا تم تسجيل أكثر من تطبيق ويب تقدّمي واحد كمعالج لعنوان URL لنمط معيّن من عناوين URL، سيُطلَب من المستخدم اختيار تطبيق الويب التقدّمي الذي يريد معالجة النمط من خلاله، إن توفّر. لا يعالج هذا الاقتراح عمليات التنقّل التي تبدأ في علامة تبويب متصفح، بل يستهدف صراحةً عمليات التنقّل التي تبدأ خارج المتصفّح.
الشفافية
إذا تعذّر إكمال عملية التحقّق اللازمة من صحة الربط بنجاح أثناء تثبيت تطبيق الويب التقدّمي لأي سبب كان، لن يسجِّل المتصفّح التطبيق كمعالِج نشط لعناوين URL المتأثرة. إذا تم تنفيذ هذه المعالِجات بشكل غير صحيح، يمكن استخدامها للاستيلاء على الزيارات إلى المواقع الإلكترونية. لهذا السبب، تشكّل آلية ربط التطبيقات جزءًا مهمًا من المخطط.
يمكن للتطبيقات المخصّصة للمنصة استخدام واجهات برمجة التطبيقات لنظام التشغيل لتعداد التطبيقات المثبَّتة
على نظام المستخدم. على سبيل المثال، يمكن للتطبيقات على نظام التشغيل Windows استخدام واجهة برمجة التطبيقات
FindAppUriHandlersAsync
لتعداد معالِجات عناوين URL. في حال تسجيل تطبيقات الويب التقدّمية (PWA) كمعالجات عناوين URL على مستوى نظام التشغيل في Windows، سيكون حضورها مرئيًا للتطبيقات الأخرى.
الاحتفاظ بالأذونات
يمكن أن يُعدِّل المصدر عمليات ربطه بتطبيقات الويب التقدّمية (PWA) في أي وقت. سيحاول المتصفّح بانتظام إعادة التحقّق من صحة عمليات الربط لتطبيقات الويب المثبَّتة. إذا تعذّر إعادة تسجيل معالج عناوين URL بسبب تغيير بيانات الربط أو لم تعد متاحة، سيزيل المتصفح التسجيلات.
ملاحظات
يريد فريق Chromium معرفة المزيد عن تجاربك في استخدام تطبيقات الويب التقدّمية (PWA) كمعالِجات لعناوين URL.
أخبِرنا عن تصميم واجهة برمجة التطبيقات.
هل هناك مشكلة في واجهة برمجة التطبيقات لا تعمل على النحو المتوقّع؟ هل هناك طُرق أو سمات مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق بشأن نموذج الأمان؟ يُرجى الإبلاغ عن مشكلة في المواصفات بشأن مستودع GitHub ذي الصلة، أو إضافة أفكارك إلى مشكلة حالية.
الإبلاغ عن مشكلة في التنفيذ
هل عثرت على خطأ في عملية تنفيذ Chromium؟ أم أن التنفيذ يختلف عن المواصفات؟
يُرجى الإبلاغ عن الخطأ على new.crbug.com. واحرص على تضمين أكبر قدر ممكن من التفاصيل،
وإرشادات بسيطة لإعادة إنتاج البيانات، وإدخال UI>Browser>WebAppInstalls
في مربّع المكوّنات. يُعدّ تطبيق Glitch مثاليًا لمشاركة عمليات إعادة الإنتاج بسرعة وسهولة.
إظهار الدعم لواجهة برمجة التطبيقات
هل تخطّط لاستخدام تطبيقات الويب التقدّمية كمعالجات عناوين URL؟ يساعد دعمك العلني فريق Chromium في تحديد أولويات الميزات ويُظهر لمورّدي المتصفّحات الأخرى مدى أهمية توفيرها.
أرسِل تغريدة إلى @ChromiumDev باستخدام الهاشتاغ
#URLHandlers
وأخبِرنا
بمكان استخدامك للميزة وطريقة استخدامك لها.
روابط مفيدة
- شرح موجز للجمهور العام
- العرض التوضيحي | مصدر العرض التوضيحي
- خطأ في تتبُّع Chromium
- إدخال ChromeStatus.com
- مكوِّن Blink:
UI>Browser>WebAppInstalls
- مراجعة TAG
- مستندات Microsoft
الشكر والتقدير
تم تحديد تطبيقات الويب التقدّمية (PWA) كمعالجات عناوين URL وتنفيذها بواسطة Lu Huang وMandy Chen من فريق Microsoft Edge. تمت مراجعة هذه المقالة من قِبل Joe Medley. صورة رئيسية من قناة برايسون هامر على قناة Un التصميم