تاريخ النشر: 24 أكتوبر 2019
ما هي مشغّلات الإشعارات؟
يمكن لمطوّري الويب عرض الإشعارات باستخدام Web Notifications API. يتم استخدام هذه الميزة غالبًا مع Push API لإعلام المستخدم بمعلومات حساسة للوقت، مثل أحداث الأخبار العاجلة أو الرسائل المستلَمة. يتم عرض الإشعارات من خلال تنفيذ JavaScript على جهاز المستخدم.
تكمن مشكلة Push API في أنّها غير موثوقة في إطلاق الإشعارات التي يجب عرضها عند استيفاء شرط معيّن، مثل الوقت أو الموقع الجغرافي. من الأمثلة على الشرط المستند إلى الوقت إشعار التقويم الذي يذكّرك باجتماع مهم مع رئيسك في الساعة 2 ظهرًا. من الأمثلة على الشرط المستند إلى الموقع الجغرافي إشعار يذكّرك بشراء الحليب عند دخولك إلى محيط متجر البقالة. يمكن أن تؤدي ميزات الحفاظ على عمر البطارية أو اتصال الشبكة، مثل وضع "السكون"، إلى تأخير وصول الإشعارات الفورية.
تعمل مشغّلات الإشعارات على حلّ هذه المشكلة من خلال السماح لك بجدولة الإشعارات مع شرط تشغيلها مسبقًا، وبالتالي سيُرسل نظام التشغيل الإشعار في الوقت المناسب حتى إذا لم يكن هناك اتصال بالشبكة أو كان الجهاز في وضع "توفير شحن البطارية".
حالات الاستخدام
يمكن لتطبيقات التقويم استخدام مشغّلات الإشعارات المستندة إلى الوقت لتذكير المستخدم باجتماعات قادمة. يمكن أن يكون نظام الإشعارات التلقائي لتطبيق تقويم هو عرض إشعار أوّل عائم قبل ساعة واحدة من الاجتماع، ثم إشعار آخر أكثر إلحاحًا قبل خمس دقائق.
قد تذكّر شبكة تلفزيونية المستخدمين بأنّ برنامجهم التلفزيوني المفضّل سيبدأ قريبًا أو أنّ البث المباشر لمؤتمر سيبدأ قريبًا.
يمكن أن تستخدم المواقع الإلكترونية التي تحوّل المناطق الزمنية مشغّلات الإشعارات المستندة إلى الوقت للسماح للمستخدمين بجدولة المنبّهات للمؤتمرات الهاتفية أو مكالمات الفيديو.
الوضع الحالي
| الخطوة | الحالة |
|---|---|
| 1. إنشاء شرح | مكتمل |
| 2. إنشاء مسودة أولية للمواصفات | لم تبدأ عملية المراجعة |
| 3- جمع الملاحظات وتكرار التصميم | قيد التقدم |
| 4. مرحلة التجربة والتقييم | مكتمل |
| 5- إطلاق | لم تبدأ عملية المراجعة |
استخدام مشغّلات الإشعارات
لتجربة Notification Triggers API محليًا بدون رمز مميّز لمرحلة التجربة والتقييم، فعِّل العلامة #enable-experimental-web-platform-features في about://flags.
رصد الميزات
يمكنك معرفة ما إذا كان المتصفّح يتيح استخدام Notification Triggers من خلال التحقّق من توفّر السمة 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 واجهة برمجة التطبيقات Notification Triggers API ونفَّذها باستخدام المبادئ الأساسية المحدّدة في التحكّم في الوصول إلى الميزات الفعّالة لمنصة الويب، بما في ذلك تحكّم المستخدم والشفافية وبيئة العمل المريحة. وبما أنّ واجهة برمجة التطبيقات هذه تتطلّب عاملي الخدمة، فهي تتطلّب أيضًا سياقًا آمنًا. يتطلّب استخدام واجهة برمجة التطبيقات الإذن نفسه المطلوب لإرسال الإشعارات الفورية العادية.
تحكّم المستخدم
لا تتوفّر واجهة برمجة التطبيقات هذه إلا في سياق ServiceWorkerRegistration. يشير ذلك إلى أنّ جميع البيانات المطلوبة يتم تخزينها في السياق نفسه ويتم حذفها تلقائيًا عند حذف عامل الخدمة أو عندما يحذف المستخدم جميع بيانات الموقع الإلكتروني للمصدر. يؤدي حظر ملفات تعريف الارتباط أيضًا إلى منع تثبيت برامج
service worker في Chrome، وبالتالي منع استخدام واجهة برمجة التطبيقات هذه. يمكن للمستخدم دائمًا إيقاف الإشعارات للموقع الإلكتروني في إعدادات الموقع الإلكتروني.
الشفافية
على عكس Push API، لا تعتمد هذه الواجهة على الشبكة، ما يعني أنّ الإشعارات المجدوَلة تحتاج إلى جميع البيانات المطلوبة مسبقًا، بما في ذلك موارد الصور التي تشير إليها السمات badge وicon وimage. وهذا يعني أنّ عرض إشعار مجدول لا يمكن للمطوّر ملاحظته، ولا يتضمّن تنشيط عامل الخدمة إلى أن يتفاعل المستخدم مع الإشعار.
في تاريخ نشر المقالة، لم تكن هناك أي طريقة معروفة يمكن للمطوّر من خلالها الحصول على معلومات عن المستخدم
من خلال طرق قد تنتهك الخصوصية، مثل البحث عن الموقع الجغرافي لعنوان IP. يتيح هذا التصميم أيضًا للميزة الاستفادة بشكل اختياري من آليات الجدولة التي يوفّرها نظام التشغيل، مثل AlarmManager في Android، ما يساعد في الحفاظ على عمر البطارية.
الملاحظات
يريد فريق Chrome معرفة تجاربك مع ميزة "مشغّلات الإشعارات".
يُرجى إخبارنا عن تصميم واجهة برمجة التطبيقات
هل هناك أي شيء في واجهة برمجة التطبيقات لا يعمل على النحو المتوقّع؟ أو هل هناك طرق أو سمات مفقودة تحتاج إليها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق حول نموذج الأمان؟ يمكنك الإبلاغ عن مشكلة في المواصفات على مستودع GitHub الخاص بمشغّلات الإشعارات، أو إضافة أفكارك إلى مشكلة حالية.
هل تواجه مشكلة في عملية التنفيذ؟
هل عثرت على خطأ في تنفيذ Chrome؟ أو هل يختلف التنفيذ عن المواصفات؟
أبلِغ عن الخطأ على new.crbug.com. تأكَّد من تضمين أكبر قدر ممكن من التفاصيل وتعليمات إعادة إنتاج الخطأ، واضبط "المكوّنات" على UI>Notifications.
هل تخطّط لاستخدام واجهة برمجة التطبيقات؟
هل تخطّط لاستخدام "مشغّلات الإشعارات" على موقعك الإلكتروني؟ يساعدنا دعمك العلني في تحديد أولويات الميزات، كما يوضّح لمورّدي المتصفّحات الآخرين مدى أهمية توفيرها. يمكنك إرسال تغريدة إلى
@ChromiumDev باستخدام الهاشتاغ
#NotificationTriggers
وإخبارنا بمكان استخدامك لهذه الميزة وكيفية استخدامها.
وصلات مساعدة
- شرح علني
- خطأ في التتبُّع
- إدخال ChromeStatus.com
- مكوّن Blink:
UI>Notifications
الإقرارات
تم تنفيذ ميزة "مشغّلات الإشعارات" بواسطة ريتشارد نول، وكتب بيتر بيفرلو شرحًا عنها، كما ساهم ريتشارد في ذلك. راجع المقالة الأشخاص التالية أسماؤهم: جو ميدلي وبيت ليباج وريتشارد وبيتر.