chrome.alarms

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

    شماره اختیاری

    اگر پوچ نباشد، زنگ ساعت تکرارشونده است و periodInMinutes دقیقه دیگر دوباره به‌صدا درمی‌آید.

  • persistAcrossSessions

    بولی

    Chrome نسخه ۱۵۰ به بالا

    آیا زنگ هشدار باید در جلسات (بازراه‌اندازی مرورگر) باقی بماند یا نه.

  • scheduledTime

    شماره

    زمانی که این زنگ ساعت برای به‌صدا درآمدن زمان‌بندی شده است، برحسب میلی‌ثانیه پس‌از مبدأ (مثلاً Date.now() + n). به‌دلایل عملکردی، ممکن است زنگ ساعت به‌مدت دلخواهی پس‌از این زمان به‌تأخیر افتاده باشد.

AlarmCreateInfo

مشخصات

  • delayInMinutes

    شماره اختیاری

    مدت زمان برحسب دقیقه که پس‌از آن رویداد onAlarm باید اجرا شود.

  • نام

    رشته اختیاری

    Chrome نسخه ۱۵۲ و بالاتر

    نام این زنگ ساعت.

  • periodInMinutes

    شماره اختیاری

    درصورت تنظیم، رویداد onAlarm باید هر periodInMinutes دقیقه پس‌از رویداد اولیه مشخص‌شده توسط when یا delayInMinutes اجرا شود. اگر تنظیم نشده باشد، زنگ ساعت فقط یک‌بار به‌صدا درمی‌آید.

  • persistAcrossSessions

    بولی اختیاری

    Chrome نسخه ۱۵۰ و بالاتر

    آیا زنگ هشدار باید در جلسات (بازراه‌اندازی مرورگر) باقی بماند یا نه. در Chrome، این مقدار به‌طور پیش‌فرض روی true تنظیم شده است تا با رفتار گذشته مطابقت داشته باشد، اما باید آن را به‌طور صریح تنظیم کنید تا سازگاری بین مرورگرها به حداکثر برسد.

  • چه زمانی

    شماره اختیاری

    زمانی که زنگ ساعت باید به‌صدا درآید، برحسب میلی‌ثانیه پس‌از مبدأ تاریخ (مثلاً Date.now() + n).

روش‌ها

clear()

قول
chrome.alarms.clear(
  name?: string,
  callback?: function,
)
: Promise<boolean>

زنگ ساعت با نام ارائه‌شده را پاک می‌کند.

پارامترها

  • نام

    رشته اختیاری

    نام زنگ ساعتی که باید پاک شود. به‌طور پیش‌فرض روی رشته خالی تنظیم می‌شود.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (wasCleared: boolean) => void

    • wasCleared

      بولی

بازگشتی‌ها

  • Promise<boolean>

    Chrome نسخه ۹۱ به بالا

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

clearAll()

قول
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean | undefined>

همه زنگ‌های ساعت را پاک می‌کند.

پارامترها

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (wasCleared?: boolean) => void

    • wasCleared

      بولی اختیاری

بازگشتی‌ها

  • Promise<boolean | undefined>

    Chrome نسخه ۹۱ به بالا

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

create()

قول
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)
: Promise<void>

زنگ ساعتی ایجاد می‌کند. نزدیک زمان(های) مشخص‌شده توسط alarmInfo، رویداد onAlarm اجرا می‌شود. اگر زنگ ساعت دیگری با همین نام (یا بدون نام، اگر نامی مشخص نشده باشد) وجود داشته باشد، لغو می‌شود و این زنگ ساعت جایگزین آن می‌شود.

برای کاهش بار روی دستگاه کاربر، Chrome هشدارها را به حداکثر یک بار در ثانیه محدود می‌کند اما ممکن است آن‌ها را به‌اندازه دلخواه بیشتر به‌تأخیر بیندازد. یعنی تنظیم delayInMinutes یا periodInMinutes روی کمتر از ۱ ثانیه پذیرفته نخواهد شد و باعث ایجاد هشدار می‌شود. when را می‌توان بدون هشدار روی کمتر از ۱ ثانیه بعداز «اکنون» تنظیم کرد، اما درواقع باعث نمی‌شود زنگ ساعت حداقل تا ۱ ثانیه به‌صدا درآید.

پارامترها

  • نام

    رشته اختیاری

    نام اختیاری برای شناسایی این زنگ هشدار. به‌طور پیش‌فرض روی رشته خالی تنظیم می‌شود.

  • alarmInfo

    توضیح می‌دهد زنگ ساعت چه زمانی باید به‌صدا درآید. زمان اولیه باید با when یا delayInMinutes (اما نه هر دو) مشخص شود. اگر periodInMinutes تنظیم شده باشد، زنگ ساعت هر periodInMinutes دقیقه پس‌از رویداد اولیه تکرار خواهد شد. اگر هیچ‌کدام از when یا delayInMinutes برای زنگ ساعت تکرارشونده تنظیم نشده باشد، periodInMinutes به‌عنوان پیش‌فرض برای delayInMinutes استفاده می‌شود.

  • تماس برگشتی

    تابع اختیاری

    Chrome نسخه ۱۱۱ به بالا

    پارامتر callback به‌صورت زیر است:

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۱۱۱ به بالا

    Promise که وقتی زنگ هشدار ایجاد شد حل‌وفصل می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

get()

قول
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

جزئیات مربوط به زنگ مشخص‌شده را بازیابی می‌کند.

پارامترها

  • نام

    رشته اختیاری

    نام زنگ هشداری که باید دریافت شود. به‌طور پیش‌فرض روی رشته خالی تنظیم می‌شود.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (alarm?: Alarm) => void

بازگشتی‌ها

  • Promise<Alarm | undefined>

    Chrome نسخه ۹۱ به بالا

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

getAll()

قول
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

آرایه‌ای از همه زنگ‌های ساعت را دریافت می‌کند.

پارامترها

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (alarms: Alarm[]) => void

بازگشتی‌ها

  • Promise<Alarm[]>

    Chrome نسخه ۹۱ به بالا

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

رویدادها

onAlarm

chrome.alarms.onAlarm.addListener(
  callback: function,
)

وقتی زنگ ساعت به‌صدا درمی‌آید، فعال می‌شود. برای صفحه‌های رویداد مفید است.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (alarm: Alarm) => void