ब्यौरा
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()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
दिए गए नाम वाला अलार्म बंद करता है.
पैरामीटर
-
नाम
स्ट्रिंग ज़रूरी नहीं
बंद किए जाने वाले अलार्म का नाम. डिफ़ॉल्ट तौर पर, यह खाली स्ट्रिंग होती है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
The
callbackपैरामीटर ऐसा दिखता है:(wasCleared: boolean) => void
-
wasCleared
बूलियन
-
रिटर्न
-
Promise<boolean>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस की सुविधा सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
सभी अलार्म बंद करता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
The
callbackपैरामीटर ऐसा दिखता है:(wasCleared: boolean) => void
-
wasCleared
बूलियन
-
रिटर्न
-
Promise<boolean>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस की सुविधा सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.
create()
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()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
चुने गए अलार्म के बारे में जानकारी देता है.
पैरामीटर
रिटर्न
-
Promise<Alarm | undefined>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस की सुविधा सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
सभी अलार्म की एक ऐरे देता है.
पैरामीटर
रिटर्न
-
Promise<Alarm[]>
Chrome 91 और इसके बाद के वर्शनप्रॉमिस की सुविधा सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए उपलब्ध है. अन्य प्लैटफ़ॉर्म पर कॉलबैक का इस्तेमाल करना ज़रूरी है.