ब्यौरा
chrome.alarms एपीआई का इस्तेमाल करके, कोड को समय-समय पर या आने वाले समय में किसी तय समय पर चलाने के लिए शेड्यूल करें.
अनुमतियां
alarmsbrowser.alarms एपीआई का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में "alarms" अनुमति का एलान करें:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
कॉन्सेप्ट और इस्तेमाल
एपीआई के काम करने के तरीके को समझना ज़रूरी है, ताकि यह पक्का किया जा सके कि वह सही तरीके से काम करे.
डिवाइस स्लीप मोड
डिवाइस के स्लीप मोड में होने पर भी अलार्म बजते रहते हैं. हालांकि, अलार्म बजने पर डिवाइस चालू नहीं होगा. डिवाइस के चालू होने पर, छूटे हुए अलार्म बजेंगे. बार-बार बजने वाले अलार्म, ज़्यादा से ज़्यादा एक बार बजेंगे. इसके बाद, डिवाइस के चालू होने के समय से शुरू होने वाली तय अवधि का इस्तेमाल करके, उन्हें फिर से शेड्यूल किया जाएगा. इसमें, अलार्म को मूल रूप से सेट किए जाने के बाद से बीत चुके समय को ध्यान में नहीं रखा जाएगा.
लगातार कोशिश करना
अलार्म बनाते समय, persistAcrossSessions फ़्लैग का इस्तेमाल करके, अलार्म के बने रहने की अवधि को कंट्रोल किया जा सकता है. इसे true (एक्सटेंशन के अपडेट होने तक बना रहता है) या false (एक्सटेंशन के फिर से लोड होने या ब्राउज़र के रीस्टार्ट होने पर, और एक्सटेंशन के अपडेट होने पर मिट जाता है) पर सेट किया जा सकता है.
अन्य ब्राउज़र और Chrome के पुराने वर्शन
यह प्रॉपर्टी, अन्य ब्राउज़र (समस्या) या Chrome 150 से पहले के वर्शन में काम नहीं करती. इन वर्शन में, इसके काम करने के तरीके का अनुमान नहीं लगाया जा सकता. इसलिए, यह पक्का करना सबसे सही रहता है कि जब भी आपका सर्विस वर्कर चालू हो, तब ज़रूरी अलार्म मौजूद हों. उदाहरण के लिए:
async function checkAlarmState() {
const alarm = await browser.alarms.get("my-alarm");
if (!alarm) {
await browser.alarms.create("my-alarm", { periodInMinutes: 1 });
}
}
checkAlarmState();
अगर आपका अलार्म, उपयोगकर्ता की कार्रवाई के आधार पर डाइनैमिक तौर पर बनाया गया है, तो हो सकता है कि आप अलार्म को कहीं और सेव करना चाहें. इससे, ज़रूरत पड़ने पर उसे फिर से बनाया जा सकता है.
उदाहरण
यहां दिए गए उदाहरणों में, अलार्म का इस्तेमाल करने और उसका जवाब देने का तरीका बताया गया है. इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से Alarm API का उदाहरण इंस्टॉल करें.
अलार्म सेट करो
यहां दिए गए उदाहरण में, एक्सटेंशन का नया वर्शन इंस्टॉल होने पर, सर्विस वर्कर में अलार्म सेट किया गया है:
service-worker.js:
browser.runtime.onInstalled.addListener(async ({ reason }) => {
// Create an alarm so we have something to look at in the demo
await browser.alarms.create('demo-default-alarm', {
delayInMinutes: 1,
periodInMinutes: 1,
persistAcrossSessions: true
});
});
किसी अलार्म का जवाब देना
यहां दिए गए उदाहरण में, बंद हुए अलार्म के नाम के आधार पर ऐक्शन टूलबार आइकॉन सेट किया गया है.
service-worker.js:
browser.alarms.onAlarm.addListener((alarm) => {
browser.action.setIcon({
path: getIconPath(alarm.name),
});
});
टाइप
Alarm
प्रॉपर्टी
-
नाम
स्ट्रिंग
इस अलार्म का नाम.
-
periodInMinutes
number ज़रूरी नहीं
अगर यह वैल्यू शून्य नहीं है, तो इसका मतलब है कि अलार्म बार-बार बजने वाला है और
periodInMinutesमिनट बाद फिर से बजेगा. -
persistAcrossSessions
बूलियन
Chrome 150+क्या अलार्म को सभी सेशन (ब्राउज़र रीस्टार्ट होने पर) में चालू रखना चाहिए.
-
scheduledTime
संख्या
वह समय जब इस अलार्म को बजने के लिए शेड्यूल किया गया था. यह समय, epoch के बाद मिलीसेकंड में होता है (उदाहरण के लिए,
Date.now() + n). परफ़ॉर्मेंस की वजहों से, अलार्म बजने में देरी हो सकती है.
AlarmCreateInfo
प्रॉपर्टी
-
delayInMinutes
number ज़रूरी नहीं
मिनट में वह समय जिसके बाद
onAlarmइवेंट ट्रिगर होना चाहिए. -
नाम
string ज़रूरी नहीं
Chrome 152 या इसके बाद का वर्शनइस अलार्म का नाम.
-
periodInMinutes
number ज़रूरी नहीं
अगर सेट किया गया है, तो
whenयाdelayInMinutesसे तय किए गए शुरुआती इवेंट के बाद, onAlarm इवेंट हरperiodInMinutesमिनट में ट्रिगर होना चाहिए. अगर यह सेट नहीं है, तो अलार्म सिर्फ़ एक बार बजेगा. -
persistAcrossSessions
बूलियन ज़रूरी नहीं
Chrome 150+क्या अलार्म को सभी सेशन (ब्राउज़र रीस्टार्ट होने पर) में चालू रखना चाहिए. Chrome में, यह डिफ़ॉल्ट रूप से true पर सेट होता है, ताकि यह पहले की तरह काम करे. हालांकि, आपको इसे साफ़ तौर पर सेट करना चाहिए, ताकि यह अलग-अलग ब्राउज़र के साथ काम कर सके.
-
कब
number ज़रूरी नहीं
अलार्म बजने का समय, Epoch के बाद मिलीसेकंड में (उदाहरण के लिए,
Date.now() + n).
तरीके
clear()
chrome.alarms.clear(
name?: string,
): Promise<boolean>
दिए गए नाम वाले अलार्म को हटाता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं
उस अलार्म का नाम जिसे बंद करना है. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.
रिटर्न
-
Promise<boolean>
Chrome 91+
clearAll()
chrome.alarms.clearAll(): Promise<boolean | undefined>
सभी अलार्म मिटा देता है.
रिटर्न
-
Promise<boolean | undefined>
Chrome 91+
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
): Promise<void>
अलार्म सेट करता है. alarmInfo में बताए गए समय के आस-पास, onAlarm इवेंट ट्रिगर होता है. अगर एक ही नाम वाला कोई दूसरा अलार्म है (या कोई नाम नहीं है, अगर कोई नाम नहीं दिया गया है), तो उसे रद्द कर दिया जाएगा और उसकी जगह यह अलार्म ले लेगा.
उपयोगकर्ता की मशीन पर लोड कम करने के लिए, Chrome हर सेकंड में ज़्यादा से ज़्यादा एक बार अलार्म सेट करने की अनुमति देता है. हालांकि, इसमें ज़्यादा देरी भी हो सकती है. इसका मतलब है कि delayInMinutes या periodInMinutes को एक सेकंड से कम पर सेट करने पर, उसे लागू नहीं किया जाएगा और आपको एक चेतावनी मिलेगी. when को बिना किसी चेतावनी के "अभी" के बाद, एक सेकंड से कम समय पर सेट किया जा सकता है. हालांकि, अलार्म कम से कम एक सेकंड तक नहीं बजेगा.
पैरामीटर
-
नाम
string ज़रूरी नहीं
इस अलार्म की पहचान करने के लिए, कोई नाम डालें. हालांकि, ऐसा करना ज़रूरी नहीं है. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.
-
alarmInfo
इससे पता चलता है कि अलार्म कब बजना चाहिए. शुरुआती समय को
whenयाdelayInMinutesमें से किसी एक के ज़रिए तय किया जाना चाहिए, दोनों के ज़रिए नहीं. अगरperiodInMinutesसेट है, तो शुरुआती इवेंट के बाद अलार्म हरperiodInMinutesमिनट में बजेगा. अगर बार-बार बजने वाले अलार्म के लिए,whenयाdelayInMinutesमें से कोई भी सेट नहीं है, तोdelayInMinutesके लिए डिफ़ॉल्ट रूप सेperiodInMinutesका इस्तेमाल किया जाता है.
रिटर्न
-
वादा<शून्य>
Chrome 111+अलार्म सेट होने पर रिज़ॉल्व होने वाला प्रॉमिस.
get()
chrome.alarms.get(
name?: string,
): Promise<Alarm | undefined>
इससे, तय किए गए अलार्म के बारे में जानकारी मिलती है.
पैरामीटर
-
नाम
string ज़रूरी नहीं
उस अलार्म का नाम जिसकी जानकारी चाहिए. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.
रिटर्न
-
Promise<Alarm | undefined>
Chrome 91+
रिटर्न
-
Promise<Alarm[]>
Chrome 91+