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

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

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

لنفترِض أنّك تتحدّث مع صديق باستخدام تطبيق مراسلة فورية مثل تطبيق "الرسائل" على نظام التشغيل macOS وأنّك تتحدث عن الموسيقى. تخيَّل أنّه تم تثبيت تطبيق الويب التقدّمي music.example.com (PWA) على الجهازَين. إذا أردت مشاركة أغنيتك المفضّلة ليستمتع بها صديقك، يمكنك إرسال رابط لصفحة معيّنة مثل https://music.example.com/rick-astley/never-gonna-give-you-up. بما أنّ هذا الرابط طويل جدًا، ربما قرّر مطوّرو music.example.com إضافة رابط قصير إضافي إلى كل مقطع صوتي، مثل https://🎵.example.com/r-a/n-g-g-y-u.

يتيح تطبيق الويب التقدّمي (PWA) مثل "معالجات عناوين URL" للتطبيقات مثل music.example.com تسجيل نفسها كمعالجات لعناوين URL لعناوين URL التي تتطابق مع أنماط مثل https://music.example.com أو https://*.music.example.com أو https://🎵.example.com، بحيث يتم فتح الروابط من خارج تطبيق الويب التقدّمي (PWA)، مثل تطبيق مراسلة فورية أو برنامج بريد إلكتروني، في تطبيق الويب التقدّمي المثبّت وليس في علامة تبويب في المتصفّح.

يتكوّن تطبيق الويب التقدّمي (PWA) كمعالجات لعناوين URL من إضافتَين:

  1. عضو بيان تطبيق الويب "url_handlers"
  2. تمثّل هذه السمة تنسيق الملف web-app-origin-association للتحقّق من صحة ارتباطات عناوين URL داخل النطاق وخارجه.

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

في ما يلي أمثلة على المواقع الإلكترونية التي قد تستخدم واجهة برمجة التطبيقات هذه:

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

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

التفعيل عبر about://flags

لتجربة تطبيقات الويب التقدّمية (PWA) على أنّها معالِجات عناوين URL على الجهاز، وبدون رمز مميّز لمرحلة التجربة والتقييم، يمكنك تفعيل علامة #enable-desktop-pwas-url-handling في about://flags.

عضو بيان تطبيق الويب "url_handlers"

لربط تطبيق ويب تقدّمي (PWA) مثبَّت بأنماط عناوين 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 وإنشاء ارتباط بتطبيق الويب التقدّمي 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 بالضبط.

الخصائص الديموغرافية

لاختبار تطبيقات الويب التقدّمية (PWA) على أنّها معالِجات عناوين URL، تأكَّد من ضبط علامة المتصفّح كما هو موضّح أعلاه، ثم ثبِّت تطبيق الويب التقدّمي (PWA) على الرابط https://mandymsft.github.io/pwa/. من خلال الاطّلاع على بيان تطبيق الويب، يمكنك معرفة أنّه يعالج عناوين URL ذات أنماط عناوين URL التالية: https://mandymsft.github.io وhttps://luhuangmsft.github.io. بما أنّ مصدر الملفات الأخير ( luhuangmsft.github.io) مختلف عن تطبيق الويب التقدّمي (PWA)، يحتاج تطبيق الويب التقدّمي (PWA) على 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. من المفترض أن يتم فتح كلا الخيارين في تطبيق الويب التقدّمي (PWA) المثبَّت.

تطبيق المراسلة الفورية لنظام التشغيل Windows Skype بجانب تطبيق الويب التقدّمي (PWA) التجريبي المثبَّت، والذي يفتح في وضع مستقل بعد النقر على رابط يعالجه في رسالة محادثة عبر Skype.

الأمان والأذونات

صمّم فريق Chromium تطبيقات الويب التقدّمية (PWA) ونفّذها كمعالجات لعناوين URL باستخدام المبادئ الأساسية المحدّدة في التحكّم في الوصول إلى الميزات الفعّالة لمنصة الويب، بما في ذلك التحكّم في المستخدم والشفافية وهندسة العمل.

تحكُّم المستخدم

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

الشفافية

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

يمكن للتطبيقات الخاصة بنظام التشغيل بالفعل استخدام واجهات برمجة التطبيقات لنظام التشغيل لتعداد التطبيقات المثبّتة على نظام المستخدم. على سبيل المثال، يمكن للتطبيقات على Windows استخدام واجهة برمجة التطبيقات FindAppUriHandlersAsync لتعداد معالِجات عناوين URL. إذا تم تسجيل تطبيقات PWA كمعالجات لعناوين URL على مستوى نظام التشغيل في Windows، سيكون حضورها مرئيًا للتطبيقات الأخرى.

استمرارية الإذن

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

إضافة ملاحظات

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

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

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

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

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

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

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

يمكنك إرسال تغريدة إلى @ChromiumDev باستخدام الهاشتاغ #URLHandlers وإعلامنا بمكان استخدامك لها وطريقة استخدامك لها.

روابط مفيدة

شكر وتقدير

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