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