chrome.alarms

ब्यौरा

chrome.alarms API का इस्तेमाल करके, कोड को समय-समय पर या भविष्य में किसी तय समय पर चलाने के लिए शेड्यूल किया जा सकता है.

अनुमतियां

alarms

मेनिफ़ेस्ट

chrome.alarms API का इस्तेमाल करने के लिए, "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

    बूलियन

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

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

  • scheduledTime

    संख्या

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

AlarmCreateInfo

प्रॉपर्टी

  • delayInMinutes

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

    onAlarm इवेंट को चालू होने में लगने वाला समय, मिनटों में.

  • नाम

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

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

    इस अलार्म का नाम.

  • periodInMinutes

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

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

  • persistAcrossSessions

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

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

    चुनें कि अलार्म, सेशन के बीच (ब्राउज़र रीस्टार्ट होने पर) बना रहना चाहिए या नहीं. 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 और इसके बाद के वर्शन

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

clearAll()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

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

    प्रॉमिस की सुविधा सिर्फ़ Manifest 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 और इसके बाद के वर्शन

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

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

get()

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

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

पैरामीटर

  • नाम

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

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

  • कॉलबैक

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

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

    (alarm?: Alarm) => void

रिटर्न

  • Promise<Alarm | undefined>

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

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

getAll()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (alarms: Alarm[]) => void

    • अलार्म

रिटर्न

  • Promise<Alarm[]>

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

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

इवेंट

onAlarm

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (alarm: Alarm) => void