chrome.alarms

ब्यौरा

कोड को समय-समय पर या आने वाले समय में किसी तय समय पर चलाने के लिए, chrome.alarms एपीआई का इस्तेमाल करें.

अनुमतियां

alarms

chrome.alarms API का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में "alarms" की अनुमति का एलान करें:

{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}

सिद्धांत और उनका इस्तेमाल

भरोसेमंद व्यवहार को पक्का करने के लिए, एपीआई के काम करने के तरीके को समझना मददगार होता है.

डिवाइस स्लीप मोड

डिवाइस के स्लीप मोड (कम बैटरी मोड) में होने पर भी अलार्म चलते रहते हैं. हालांकि, अलार्म सेट करने से किसी डिवाइस को जगाना. डिवाइस के चालू होने पर, छूटे हुए अलार्म फिर से चालू हो जाएंगे. दोहराए जाने वाले अलार्म एक बार में ही सक्रिय हो जाएंगे और फिर डिवाइस के चालू होने से लेकर, इस समयावधि के शुरू होने की जानकारी अलार्म बजने के बाद का समय बीत चुका है.

निरंतरता

आम तौर पर, किसी एक्सटेंशन के अपडेट होने तक अलार्म बने रहते हैं. हालांकि, ऐसा होने की कोई गारंटी नहीं है और अलार्म ब्राउज़र के फिर से प्रारंभ होने पर साफ़ हो सकता है. इसलिए, स्टोरेज में कोई वैल्यू सेट करें जब अलार्म बनाया जाता है और फिर पक्का करता है कि हर बार आपका सर्विस वर्कर के शुरू होने पर यह मौजूद हो. उदाहरण के लिए:

const STORAGE_KEY = "user-preference-alarm-enabled";

async function checkAlarmState() {
  const { alarmEnabled } = await chrome.storage.get(STORAGE_KEY);

  if (alarmEnabled) {
    const alarm = await chrome.alarms.get("my-alarm");

    if (!alarm) {
      await chrome.alarms.create({ periodInMinutes: 1 });
    }
  }
}

checkAlarmState();

उदाहरण

नीचे दिए गए उदाहरणों में, अलार्म को इस्तेमाल करने और उसका जवाब देने का तरीका बताया गया है. इस एपीआई को आज़माने के लिए, 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 मिनट में फिर से चालू हो जाएगा.

  • scheduledTime

    संख्या

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

AlarmCreateInfo

प्रॉपर्टी

  • delayInMinutes

    नंबर वैकल्पिक

    मिनट में वह समय अवधि जिसके बाद onAlarm इवेंट फ़ायर हो जाना चाहिए.

  • periodInMinutes

    नंबर वैकल्पिक

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

  • कब

    नंबर वैकल्पिक

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

तरीके

clear()

प्रॉमिस
chrome.alarms.clear(
  name?: string,
  callback?: function,
)

दिए गए नाम से अलार्म हटाता है.

पैरामीटर

  • नाम

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

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

    Chrome 91 और उसके बाद वाले वर्शन के लिए

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

clearAll()

प्रॉमिस
chrome.alarms.clearAll(
  callback?: function,
)

सभी अलार्म हटा देता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

    Chrome 91 और उसके बाद वाले वर्शन के लिए

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

create()

प्रॉमिस
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)

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

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

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

पैरामीटर

  • नाम

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

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

  • alarmInfo

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

    Chrome 111 और उसके बाद वाले वर्शन के लिए

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    Chrome 111 और उसके बाद वाले वर्शन के लिए

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

get()

प्रॉमिस
chrome.alarms.get(
  name?: string,
  callback?: function,
)

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

पैरामीटर

  • नाम

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

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (alarm?: Alarm) => void

रिटर्न

  • Promise&lt;Alarm | तय नहीं है>

    Chrome 91 और उसके बाद वाले वर्शन के लिए

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

getAll()

प्रॉमिस
chrome.alarms.getAll(
  callback?: function,
)

सभी अलार्म के कलेक्शन पाएं.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (alarms: Alarm[]) => void

रिटर्न

  • प्रॉमिस<अलार्म[]>

    Chrome 91 और उसके बाद वाले वर्शन के लिए

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

इवेंट

onAlarm

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (alarm: Alarm) => void