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