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 रिपॉज़िटरी से Alarm API का उदाहरण इंस्टॉल करें.

अलार्म सेट करो

यहां दिए गए उदाहरण में, एक्सटेंशन इंस्टॉल होने पर सर्विस वर्कर में अलार्म सेट किया गया है:

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

    number ज़रूरी नहीं

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

  • scheduledTime

    संख्या

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

AlarmCreateInfo

प्रॉपर्टी

  • delayInMinutes

    number ज़रूरी नहीं

    onAlarm इवेंट को ट्रिगर करने के लिए, कितने मिनट का समय तय करना है.

  • periodInMinutes

    number ज़रूरी नहीं

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

  • कब

    number ज़रूरी नहीं

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

तरीके

clear()

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

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

पैरामीटर

  • नाम

    string ज़रूरी नहीं है

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

  • कॉलबैक

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

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

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

clearAll()

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

इससे सभी अलार्म मिट जाते हैं.

पैरामीटर

  • कॉलबैक

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

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

    (wasCleared: boolean) => void

    • wasCleared

      बूलियन

रिटर्न

  • Promise<boolean>

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

create()

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

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

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

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

पैरामीटर

  • नाम

    string ज़रूरी नहीं है

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

  • alarmInfo

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

  • कॉलबैक

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

    Chrome 111+

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

    () => void

रिटर्न

  • Promise<void>

    Chrome 111+

get()

प्रॉमिस
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

इस फ़ंक्शन का इस्तेमाल, किसी अलार्म के बारे में जानकारी पाने के लिए किया जाता है.

पैरामीटर

  • नाम

    string ज़रूरी नहीं है

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

  • कॉलबैक

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

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

    (alarm?: Alarm) => void

रिटर्न

  • Promise<Alarm | undefined>

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

getAll()

प्रॉमिस
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

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

पैरामीटर

  • कॉलबैक

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

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

    (alarms: Alarm[]) => void

    • अलार्म

रिटर्न

  • Promise<Alarm[]>

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

इवेंट

onAlarm

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (alarm: Alarm) => void