refresh date: 2026-09-25 robots: noindex
الوصف
استخدِم واجهة برمجة التطبيقات chrome.alarms لجدولة الرمز البرمجي ليتم تنفيذه بشكل دوري أو في وقت محدّد في المستقبل.
الأذونات
alarmsالبيان
لاستخدام واجهة برمجة التطبيقات chrome.alarms، يجب الإفصاح عن الإذن "alarms" في ملف البيان:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
أمثلة
توضّح الأمثلة التالية كيفية استخدام المنبّه والردّ عليه. لتجربة واجهة برمجة التطبيقات هذه، ثبِّت مثال Alarm API من مستودع chrome-extension-samples.
ضبط منبّه
يضبط المثال التالي منبّهًا في عامل الخدمة عند تثبيت الإضافة:
service-worker.js:
chrome.runtime.onInstalled.addListener(async ({ reason }) => {
if (reason !== 'install') {
return;
}
// Create an alarm so we have something to look at in the demo
await chrome.alarms.create('demo-default-alarm', {
delayInMinutes: 1,
periodInMinutes: 1
});
});
الردّ على منبّه
يضبط المثال التالي رمز شريط أدوات الإجراء استنادًا إلى اسم المنبّه الذي تم تشغيله.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
الأنواع
Alarm
الخصائص
-
الاسم
سلسلة
اسم هذا المنبّه.
-
periodInMinutes
number اختياري
إذا لم تكن القيمة فارغة، يكون المنبّه متكرّرًا وسيتم تشغيله مرة أخرى بعد
periodInMinutesدقيقة. -
persistAcrossSessions
قيمة منطقية
Chrome 150+لتحديد ما إذا كان يجب أن يستمر التنبيه في جميع الجلسات (إعادة تشغيل المتصفّح).
-
scheduledTime
الرقم
الوقت الذي تم فيه تحديد موعد تشغيل هذا المنبّه، بالملّي ثانية بعد بداية الحقبة (مثلاً
Date.now() + n). ولأسباب تتعلّق بالأداء، قد يكون المنبّه قد تأخّر بمقدار عشوائي يتجاوز هذا الوقت.
AlarmCreateInfo
الخصائص
-
delayInMinutes
number اختياري
تمثّل هذه السمة مدة الوقت بالدقائق التي يجب بعدها تنشيط الحدث
onAlarm. -
الاسم
سلسلة اختيارية
الإصدار 152 من Chrome والإصدارات الأحدثاسم هذا المنبّه.
-
periodInMinutes
number اختياري
في حال ضبطها، يجب أن يتم تنشيط الحدث onAlarm كل
periodInMinutesدقيقة بعد الحدث الأوّلي المحدّد بواسطةwhenأوdelayInMinutes. في حال عدم ضبطها، سيتم تشغيل المنبّه مرة واحدة فقط. -
persistAcrossSessions
boolean اختياري
Chrome 150+لتحديد ما إذا كان يجب أن يستمر التنبيه في العمل على مستوى الجلسات (إعادة تشغيل المتصفّح). في Chrome، يكون هذا الإعداد صحيحًا تلقائيًا ليتوافق مع السلوك السابق، ولكن يجب ضبطه بشكل صريح لتحقيق أقصى قدر من التوافق على مستوى المتصفّحات.
-
متى
number اختياري
الوقت الذي يجب أن ينطلق فيه المنبّه، بالملّي ثانية بعد بداية الحقبة (مثلاً
Date.now() + n)
الطُرق
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
يمحو المنبّه بالاسم المحدّد.
المعلمات
-
الاسم
سلسلة اختيارية
تمثّل هذه السمة اسم المنبّه المطلوب محوه. القيمة التلقائية هي السلسلة الفارغة.
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(wasCleared: boolean) => void
-
wasCleared
قيمة منطقية
-
المرتجعات
-
Promise<boolean>
الإصدار 91 من Chrome أو إصدار أحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
محو جميع المنبّهات
المعلمات
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(wasCleared: boolean) => void
-
wasCleared
قيمة منطقية
-
المرتجعات
-
Promise<boolean>
الإصدار 91 من Chrome أو إصدار أحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
تنشئ هذه الطريقة منبّهًا. يتم تنشيط الحدث onAlarm بالقرب من الأوقات المحدّدة في alarmInfo. إذا كان هناك منبّه آخر بالاسم نفسه (أو بدون اسم إذا لم يتم تحديد أي اسم)، سيتم إلغاؤه واستبداله بهذا المنبّه.
للحدّ من الحمل على جهاز المستخدم، يقتصر عدد التنبيهات في Chrome على مرة واحدة كل 30 ثانية على الأكثر، ولكن قد يتم تأخيرها لمدة عشوائية إضافية. أي أنّ ضبط delayInMinutes أو periodInMinutes على قيمة أقل من 0.5 لن يتم تنفيذه وسيؤدي إلى ظهور تحذير. يمكن ضبط قيمة when على أقل من 30 ثانية بعد "الآن" بدون تحذير، ولكن لن يتم تشغيل المنبّه فعليًا لمدة 30 ثانية على الأقل.
لمساعدتك في تصحيح أخطاء تطبيقك أو إضافتك، عندما يتم تحميلها بدون حزم، لا يوجد حد لعدد مرات تشغيل المنبّه.
المعلمات
-
الاسم
سلسلة اختيارية
اسم اختياري لتحديد هذا التنبيه. القيمة التلقائية هي السلسلة الفارغة.
-
alarmInfo
تصف هذه السمة الوقت الذي يجب فيه تنشيط المنبّه. يجب تحديد الوقت الأوّلي باستخدام
whenأوdelayInMinutes(وليس كليهما). في حال ضبطperiodInMinutes، سيتكرّر المنبّه كلperiodInMinutesدقيقة بعد الحدث الأوّلي. إذا لم يتم ضبطwhenأوdelayInMinutesلمنبّه متكرّر، يتم استخدامperiodInMinutesكقيمة تلقائية لـdelayInMinutes. -
callback
الدالة اختيارية
الإصدار 111 من Chrome والإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
Promise<void>
الإصدار 111 من Chrome والإصدارات الأحدثوعد يتم تنفيذه عند إنشاء المنبّه.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
تعرض هذه الطريقة تفاصيل حول المنبّه المحدّد.
المعلمات
المرتجعات
-
Promise<Alarm | undefined>
الإصدار 91 من Chrome أو إصدار أحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
تعرض هذه الطريقة مصفوفة تتضمّن جميع المنبّهات.
المعلمات
المرتجعات
-
Promise<Alarm[]>
الإصدار 91 من Chrome أو إصدار أحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.