واجهة برمجة التطبيقات لعوامل تشغيل الإشعارات

تتيح لك عوامل تشغيل الإشعارات جدولة الإشعارات المحلية التي لا تتطلب اتصالاً بالشبكة، ما يجعلها مثالية لحالات الاستخدام مثل تطبيقات التقويم.

ما هي عوامل تشغيل الإشعارات؟

يمكن لمطوّري البرامج على الويب عرض الإشعارات باستخدام Web Notifications API (واجهة برمجة تطبيقات إشعارات الويب): وغالبًا ما يتم استخدام هذه الميزة مع دفع واجهة برمجة التطبيقات لإبلاغ المستخدم بالمعلومات الحساسة للوقت، مثل كأحداث إخبارية عاجلة أو رسائل متلقاة. يتم عرض الإشعارات عن طريق تشغيل JavaScript على جهاز المستخدم.

تكمن مشكلة واجهة برمجة التطبيقات Push API في أنّها غير موثوقة لتشغيل الإشعارات التي يجب أن تكون تظهر عند استيفاء شرط معين، مثل الوقت أو الموقع. ومن الأمثلة على استراتيجيات البيانات المستندة إلى الوقت الشرط هو إشعار تقويم يذكّرك باجتماع مهم مع رئيسك في 2 مساءً. مثال على الحالات المستندة إلى الموقع الجغرافي هو إشعار يذكّرك بشراء الحليب. عندما تدخل بالقرب من متجر البقالة. اتصال الشبكة أو الحفاظ على البطارية يمكن أن تؤخّر ميزات مثل "وضع القيلولة" إرسال الإشعارات الفورية.

تحل مشغلات الإشعارات هذه المشكلة من خلال السماح لك بجدولة الإشعارات مع تشغيلها شرطه مسبقًا، حتى يسلم نظام التشغيل الإشعار في الوقت المناسب حتى إذا لم يكن هناك اتصال بالشبكة أو كان الجهاز في وضع توفير شحن البطارية.

حالات الاستخدام

يمكن لتطبيقات التقويم استخدام عوامل تشغيل الإشعارات المستندة إلى الوقت لتذكير المستخدم بالأحداث القادمة افتراضية. قد يكون مخطط الإشعارات الافتراضي لتطبيق التقويم هو عرض تنبيه أول إشعار قبل ساعة واحدة من الاجتماع ثم إشعار آخر أكثر إلحاحًا خمس دقائق من قبل.

قد تُذكّر شبكة تلفزيونية المستخدمين بأنّ برنامجهم التلفزيوني المفضَّل على وشك البدء أو عقد مؤتمر مباشر البث على وشك البدء.

بإمكان مواقع تحويل المنطقة الزمنية استخدام عوامل تشغيل الإشعارات المستندة إلى الوقت للسماح لمستخدميها بجدولة مواعيدهم. الخاصة بالمؤتمرات الهاتفية أو مكالمات الفيديو.

الوضع الحالي

الخطوة الحالة
1. إنشاء شرح مكتمل
2. إنشاء مسودة أولية للمواصفات Not started
3- اجمع الملاحظات والآراء وتكرار الجوانب الإيجابية في التصميم. قيد التقدّم
4. مرحلة التجربة والتقييم مكتملة
5- إطلاق Not started

كيفية استخدام عوامل تشغيل الإشعارات

التفعيل من خلال about://flags

لتجربة واجهة برمجة التطبيقات Notification Triggers API محليًا، بدون رمز مميَّز خاص بالتجربة المصدر، عليك تفعيل تم الإبلاغ عن #enable-experimental-web-platform-features في about://flags.

رصد الميزات

يمكنك معرفة ما إذا كان المتصفح يتوافق مع عوامل تشغيل الإشعارات عن طريق التحقق من وجود الخاصية "showTrigger":

if ('showTrigger' in Notification.prototype) {
  /* Notification Triggers supported */
}

جدولة إشعار

تتشابه جدولة الإشعار مع عرض إشعار فوري عادي، باستثناء أنك تحتاج إلى تمرير خاصية شرط showTrigger مع كائن TimestampTrigger كقيمة إلى الكائن options في الإشعار.

const createScheduledNotification = async (tag, title, timestamp) => {
  const registration = await navigator.serviceWorker.getRegistration();
  registration.showNotification(title, {
    tag: tag,
    body: 'This notification was scheduled 30 seconds ago',
    showTrigger: new TimestampTrigger(timestamp + 30 * 1000),
  });
};

إلغاء إشعار مجدوَل

لإلغاء الإشعارات المُجدوَلة، عليك أولاً طلب قائمة بجميع الإشعارات التي تتطابق مع إشعار معيّن خلال ServiceWorkerRegistration.getNotifications(). لاحظ أنك بحاجة إلى اجتياز علامة includeTriggered للإشعارات المُجدوَلة لتضمينها في القائمة:

const cancelScheduledNotification = async (tag) => {
  const registration = await navigator.serviceWorker.getRegistration();
  const notifications = await registration.getNotifications({
    tag: tag,
    includeTriggered: true,
  });
  notifications.forEach((notification) => notification.close());
};

تصحيح الأخطاء

يمكنك استخدام لوحة إشعارات "أدوات مطوري البرامج في Chrome" لتصحيح أخطاء الإشعارات. للبدء لتصحيح الأخطاء، اضغط على بدء تسجيل الأحداث. بدء تسجيل الأحداث أو Control+E (Command+E على Mac). سجلات "أدوات مطوري البرامج في Chrome" جميع أحداث الإشعارات، بما في ذلك الإشعارات المُجدوَلة والمعروضة والمغلقة، لمدة ثلاثة أيام حتى عند إغلاق أدوات مطوري البرامج

تم تسجيل حدث إشعار مجدوَل في لوحة "الإشعارات" في "أدوات مطوري البرامج في Chrome" ضمن لوحة "التطبيق".
إشعار مجدوَل
تم تسجيل حدث إشعارات معروض في لوحة "الإشعارات" في "أدوات مطوري البرامج في Chrome".
إشعار معروض

عرض توضيحي

يمكنك الاطّلاع على عوامل تشغيل الإشعارات أثناء تنفيذها في العرض التوضيحي، ما يتيح لك جدولة الإشعارات، وإدراج الإشعارات المُجدوَلة، وإلغاؤها. يتوفر رمز المصدر على الخلل:

لقطة شاشة لتطبيق الويب التجريبي لميزة Notification Triggers (مشغّلات الإشعارات) على الويب
العرض التوضيحي حول تشغيل الإشعارات

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

صمّم فريق Chrome واجهة برمجة التطبيقات Notification Triggers API ونفّذها باستخدام المبادئ الأساسية. المحدد في التحكم في الوصول إلى ميزات النظام الأساسي للويب الفعالة، بما في ذلك حسابات والتحكم والشفافية وهندسة العمل. ولأن واجهة برمجة التطبيقات هذه تتطلب عاملي خدمة، فإنها تتطلب أيضًا السياق الآمن. يتطلب استخدام واجهة برمجة التطبيقات الإذن نفسه الذي تحصل عليه الإشعارات الفورية العادية.

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

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

الشفافية

على عكس واجهة برمجة التطبيقات Push API، لا تعتمد واجهة برمجة التطبيقات هذه على الشبكة، ما يشير إلى إرسال إشعارات مُجدوَلة. بحاجة إلى جميع البيانات المطلوبة مسبقًا، بما في ذلك موارد الصور المُشار إليها في badge وicon image. يعني هذا أنّه لا يمكن لمطوِّر البرامج ملاحظة عرض إشعار مجدوَل. ولا يتضمّن إيقاظ مشغّل الخدمات إلى أن يتفاعل المستخدم مع الإشعار. وبالتالي، ليست هناك حاليًا طريقة معروفة يمكن لمطوّر البرامج من خلالها الحصول على معلومات عن المستخدم من خلال أساليب قد تنتهك الخصوصية مثل البحث عن الموقع الجغرافي لعنوان IP يحتوي هذا التصميم أيضًا تسمح للميزة بالاستفادة اختياريًا من آليات الجدولة التي يوفرها نظام التشغيل مثل AlarmManager الخاص بنظام التشغيل Android مما يساعد في الحفاظ على البطارية.

ملاحظات

يرغب فريق Chrome في معرفة رأيك بشأن تجاربك مع عوامل تشغيل الإشعارات.

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

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

هل تواجه مشكلة في عملية التنفيذ؟

هل واجهت مشكلة في التنفيذ في Chrome؟ أم أن التنفيذ يختلف عن المواصفات؟ يُرجى الإبلاغ عن الخطأ على new.crbug.com. تأكد من تضمين أكبر قدر ممكن من التفاصيل، تعليمات بسيطة لإعادة إنتاجها، وتعيين المكونات إلى UI>Notifications. تأثير خلل يعمل بشكل رائع لمشاركة نسخ عن الأخطاء بطريقة سريعة وسهلة

هل تخطط لاستخدام واجهة برمجة التطبيقات؟

هل تخطّط لاستخدام عوامل تشغيل الإشعارات على موقعك الإلكتروني؟ يساعدنا دعمك العام في تحديد الأولويات وتوضح لموردي المتصفح الآخرين مدى أهمية دعمهم. إرسال تغريدة إلى @ChromiumDev باستخدام علامة التصنيف #NotificationTriggers عليك إعلامنا بمكان تطبيقك وطريقة استخدامه

وصلات مساعدة

شكر وتقدير

تم تنفيذ "عوامل تشغيل الإشعارات" من قِبل ريتشارد نول. والشرح الذي كتبه بيتر بيفيرلو مع بشكل أفضل من ريتشارد. راجع الأشخاص التالية أسماؤهم المقالة: جو ميدلي وبيت ليبيج، وكذلك ريتشارد وبيتر. الصورة الرئيسية من تصميم شاهِد Lukas Blazek على Unspark.