chrome.alarms

ब्यौरा

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

    संख्या ज़रूरी नहीं

    अगर यह वैल्यू null नहीं है, तो अलार्म बार-बार बजेगा और periodInMinutes मिनट बाद फिर से बजेगा.

  • persistAcrossSessions

    बूलियन

    मंज़ूरी बाकी है

    चुनें कि अलार्म, सेशन के बीच (ब्राउज़र रीस्टार्ट होने पर) भी बजना चाहिए या नहीं.

  • scheduledTime

    संख्या

    वह समय जब इस अलार्म को बजने के लिए शेड्यूल किया गया था.यह समय, epoch के बाद के मिलीसेकंड में होता है. जैसे, Date.now() + n. परफ़ॉर्मेंस की वजह से, अलार्म को इससे ज़्यादा समय के लिए भी डिले किया जा सकता है.

AlarmCreateInfo

प्रॉपर्टी

  • delayInMinutes

    संख्या ज़रूरी नहीं

    वह समय (मिनटों में), जिसके बाद onAlarm इवेंट ट्रिगर होना चाहिए.

  • periodInMinutes

    संख्या ज़रूरी नहीं

    अगर यह वैल्यू सेट है, तो `onAlarm` इवेंट, when या delayInMinutes से तय किए गए शुरुआती इवेंट के बाद, हर periodInMinutes मिनट में ट्रिगर होना चाहिए. अगर यह वैल्यू सेट नहीं है, तो अलार्म सिर्फ़ एक बार बजेगा.

  • persistAcrossSessions

    बूलियन ज़रूरी नहीं

    मंज़ूरी बाकी है

    चुनें कि अलार्म, सेशन के बीच (ब्राउज़र रीस्टार्ट होने पर) भी बजना चाहिए या नहीं. Chrome में, यह वैल्यू डिफ़ॉल्ट तौर पर 'सही' पर सेट होती है, ताकि यह पहले की तरह काम करे. हालांकि, आपको इसे साफ़ तौर पर सेट करना चाहिए, ताकि यह सभी ब्राउज़र पर काम करे.

  • कब

    संख्या ज़रूरी नहीं

    वह समय जब अलार्म बजना चाहिए.यह समय, epoch के बाद के मिलीसेकंड में होता है. जैसे, Date.now() + n.

तरीके

clear()

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

दिए गए नाम वाले अलार्म को बंद करता है.

पैरामीटर

  • नाम

    स्ट्रिंग ज़रूरी नहीं

    वह अलार्म जिसे बंद करना है. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    The callback पैरामीटर ऐसा दिखता है:

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

    Chrome 91 और इसके बाद के वर्शन

    प्रॉमिस की सुविधा सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.

clearAll()

Promise
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean>

सभी अलार्म बंद करता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    The callback पैरामीटर ऐसा दिखता है:

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

    Chrome 91 और इसके बाद के वर्शन

    प्रॉमिस की सुविधा सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.

create()

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

अलार्म सेट करता है. alarmInfo में बताए गए समय पर या उसके आस-पास, onAlarm इवेंट ट्रिगर होता है. अगर उसी नाम का कोई दूसरा अलार्म मौजूद है (या कोई नाम नहीं दिया गया है), तो उसे रद्द कर दिया जाएगा और उसकी जगह यह अलार्म सेट हो जाएगा.

उपयोगकर्ता के डिवाइस पर लोड कम करने के लिए, Chrome अलार्म को हर 30 सेकंड में ज़्यादा से ज़्यादा एक बार बजने की अनुमति देता है. हालांकि, अलार्म को इससे ज़्यादा समय के लिए भी डिले किया जा सकता है. इसका मतलब है कि delayInMinutes या periodInMinutes को 0.5 से कम पर सेट करने पर, अलार्म नहीं बजेगा और आपको एक चेतावनी दिखेगी. when को "अभी" के 30 सेकंड बाद से कम समय पर सेट किया जा सकता है. हालांकि, अलार्म कम से कम 30 सेकंड तक नहीं बजेगा.

अपने ऐप्लिकेशन या एक्सटेंशन को डीबग करने में आपकी मदद करने के लिए, जब आपने इसे अनपैक्ड लोड किया है, तो अलार्म के बजने की कोई सीमा नहीं होती.

पैरामीटर

  • नाम

    स्ट्रिंग ज़रूरी नहीं

    इस अलार्म की पहचान करने के लिए, कोई नाम दिया जा सकता है. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.

  • alarmInfo

    यह बताता है कि अलार्म कब बजना चाहिए. शुरुआती समय, when या delayInMinutes में से किसी एक से तय किया जाना चाहिए. दोनों से नहीं. अगर periodInMinutes सेट है, तो अलार्म, शुरुआती इवेंट के बाद हर periodInMinutes मिनट में बजेगा. अगर बार-बार बजने वाले अलार्म के लिए, when या delayInMinutes में से कोई भी वैल्यू सेट नहीं है, तो periodInMinutes को delayInMinutes के लिए डिफ़ॉल्ट वैल्यू के तौर पर इस्तेमाल किया जाता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 111 और इसके बाद के वर्शन

    The callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 111 और इसके बाद के वर्शन

    अलार्म सेट होने पर, यह प्रॉमिस रिज़ॉल्व हो जाता है.

    प्रॉमिस की सुविधा सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.

get()

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

चुने गए अलार्म के बारे में जानकारी देता है.

पैरामीटर

  • नाम

    स्ट्रिंग ज़रूरी नहीं

    वह अलार्म जिसके बारे में जानकारी चाहिए. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    The callback पैरामीटर ऐसा दिखता है:

    (alarm?: Alarm) => void

रिटर्न

  • Promise<Alarm | undefined>

    Chrome 91 और इसके बाद के वर्शन

    प्रॉमिस की सुविधा सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.

getAll()

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

सभी अलार्म की एक कलेक्शन देता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    The callback पैरामीटर ऐसा दिखता है:

    (alarms: Alarm[]) => void

रिटर्न

  • Promise<Alarm[]>

    Chrome 91 और इसके बाद के वर्शन

    प्रॉमिस की सुविधा सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.

इवेंट

onAlarm

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

अलार्म बजने पर ट्रिगर होता है. यह इवेंट पेजों के लिए काम का है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    The callback पैरामीटर ऐसा दिखता है:

    (alarm: Alarm) => void