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

    बूलियन

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

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

  • scheduledTime

    संख्या

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

AlarmCreateInfo

प्रॉपर्टी

  • delayInMinutes

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

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

  • नाम

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

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

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

  • periodInMinutes

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

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

  • persistAcrossSessions

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

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

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

  • कब

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

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

तरीके

clear()

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

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

पैरामीटर

  • नाम

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

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

  • कॉलबैक

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

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

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

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

clearAll()

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

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

पैरामीटर

  • कॉलबैक

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

    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 और इसके बाद के वर्शन

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

    () => void

रिटर्न

  • Promise<void>

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

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

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

get()

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

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

पैरामीटर

  • नाम

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

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

  • कॉलबैक

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

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

    (alarm?: Alarm) => void

रिटर्न

  • Promise<Alarm | undefined>

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

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

getAll()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (alarms: Alarm[]) => void

    • अलार्म

रिटर्न

  • Promise<Alarm[]>

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

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

इवेंट

onAlarm

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (alarm: Alarm) => void