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
قيمة منطقية
الإصدار 150 من Chrome والإصدارات الأحدثلتحديد ما إذا كان يجب أن يستمر المنبّه في جميع الجلسات (إعادة تشغيل المتصفّح) أم لا.
-
scheduledTime
الرقم
الوقت الذي تمت فيه جدولة هذا المنبّه، بالمللي ثانية بعد العصر (مثل
Date.now() + n). لأسباب تتعلق بالأداء، قد يكون المنبّه قد تأخر بمقدار عشوائي يتجاوز هذا المقدار.
AlarmCreateInfo
الخصائص
-
delayInMinutes
number اختيارية
تمثّل هذه المَعلمة المدة الزمنية بالدقائق التي يجب بعدها تنشيط الحدث
onAlarm. -
الاسم
string اختياري
الإصدار 152 من Chrome والإصدارات الأحدثاسم هذا المنبّه
-
periodInMinutes
number اختيارية
في حال ضبط هذا الإعداد، من المفترض أن يتم تنشيط الحدث onAlarm كل
periodInMinutesدقيقة بعد الحدث الأولي المحدّد من خلالwhenأوdelayInMinutes. في حال عدم ضبطه، سيتم تفعيل المنبّه مرة واحدة فقط. -
persistAcrossSessions
قيمة منطقية اختيارية
الإصدار 150 من Chrome والإصدارات الأحدثما إذا كان يجب أن يستمر المنبّه في جميع الجلسات (إعادة تشغيل المتصفّح). في Chrome، يتم ضبط هذه القيمة تلقائيًا على "صحيح" لمطابقة السلوك السابق، ولكن يجب ضبطها بشكل صريح لزيادة التوافق على مستوى المتصفّحات.
-
متى
number اختيارية
الوقت الذي يجب أن يرن فيه المنبّه، بالملي ثانية بعد بداية حقبة معيّنة (مثلاً
Date.now() + n).
الطُرق
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
لمحو المنبّه الذي يحمل الاسم المحدّد
المعلمات
-
الاسم
string اختياري
اسم المنبّه المطلوب محوه القيمة التلقائية هي السلسلة الفارغة.
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(wasCleared: boolean) => void
-
wasCleared
قيمة منطقية
-
المرتجعات
-
Promise<boolean>
الإصدار 91 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
يمحو هذا الزر جميع المنبّهات.
المعلمات
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(wasCleared?: boolean) => void
-
wasCleared
قيمة منطقية اختيارية
-
المرتجعات
-
Promise<boolean | undefined>
الإصدار 91 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
لإنشاء منبّه يتم تشغيل الحدث onAlarm في وقت قريب من الأوقات المحدّدة في alarmInfo. إذا كان هناك منبّه آخر بالاسم نفسه (أو بدون اسم في حال عدم تحديد اسم)، سيتم إلغاؤه واستبداله بهذا المنبّه.
لتقليل الحمل على جهاز المستخدم، يحدّ Chrome من التنبيهات إلى مرة واحدة في الثانية على الأكثر، ولكن قد يؤخرها بمقدار عشوائي أكثر. وهذا يعني أنّ ضبط delayInMinutes أو periodInMinutes على أقل من ثانية واحدة لن يتم قبوله وسيؤدي إلى ظهور تحذير. يمكن ضبط when على أقل من ثانية واحدة بعد "الآن" بدون تحذير، ولكن لن يؤدي ذلك إلى تفعيل المنبّه لمدة ثانية واحدة على الأقل.
المعلمات
-
الاسم
string اختياري
اسم اختياري لتحديد هذا المنبّه القيمة التلقائية هي السلسلة الفارغة.
-
alarmInfo
تصف هذه السمة وقت تفعيل المنبّه. يجب تحديد الوقت الأولي باستخدام
whenأوdelayInMinutes(وليس كليهما). إذا تم ضبطperiodInMinutes، سيتكرّر المنبّه كلperiodInMinutesدقيقة بعد الحدث الأوّلي. إذا لم يتم ضبطwhenأوdelayInMinutesلمنبّه متكرّر، يتم استخدامperiodInMinutesكقيمة تلقائية لـdelayInMinutes. -
callback
function اختياري
الإصدار 111 من Chrome والإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:() => 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 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.