ब्यौरा
chrome.alarms API का इस्तेमाल करके, कोड को समय-समय पर या आने वाले समय में किसी तय समय पर चलाने के लिए शेड्यूल करें.
अनुमतियां
alarmsमेनिफ़ेस्ट
chrome.alarms API का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में "alarms" अनुमति का एलान करें:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
उदाहरण
यहां दिए गए उदाहरणों में, अलार्म का इस्तेमाल करने और उसका जवाब देने का तरीका बताया गया है. इस एपीआई को आज़माने के लिए, 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 optional
अगर यह वैल्यू शून्य नहीं है, तो इसका मतलब है कि अलार्म बार-बार बजने वाला अलार्म है और यह
periodInMinutesमिनट में फिर से बजेगा. -
persistAcrossSessions
बूलियन
Chrome 150+क्या अलार्म को सेशन (ब्राउज़र रीस्टार्ट) के दौरान चालू रखना है.
-
scheduledTime
संख्या
यह अलार्म किस समय के लिए शेड्यूल किया गया था.यह समय, ईपॉक के बाद के मिलीसेकंड में होता है. उदाहरण के लिए,
Date.now() + n. परफ़ॉर्मेंस की वजह से, अलार्म को इस समय के बाद कुछ समय के लिए रोका जा सकता है.
AlarmCreateInfo
प्रॉपर्टी
-
delayInMinutes
number optional
यह वह समय है जिसके बाद
onAlarmइवेंट ट्रिगर होना चाहिए. यह समय मिनटों में होता है. -
periodInMinutes
number optional
अगर इसे सेट किया जाता है, तो
whenयाdelayInMinutesसे तय किए गए शुरुआती इवेंट के बाद, हरperiodInMinutesमिनट में onAlarm इवेंट ट्रिगर होना चाहिए. अगर इसे सेट नहीं किया गया है, तो अलार्म सिर्फ़ एक बार बजेगा. -
persistAcrossSessions
बूलियन ज़रूरी नहीं है
Chrome 150+क्या अलार्म को सेशन (ब्राउज़र रीस्टार्ट) के दौरान चालू रखना है. Chrome में, यह डिफ़ॉल्ट रूप से सही पर सेट होता है, ताकि यह पुराने व्यवहार से मेल खा सके. हालांकि, आपको इसे साफ़ तौर पर सेट करना चाहिए, ताकि यह अलग-अलग ब्राउज़र के साथ काम कर सके.
-
कब
number optional
वह समय जब अलार्म बजना चाहिए.यह समय, epoch के बाद के मिलीसेकंड में होता है. उदाहरण के लिए,
Date.now() + n.
तरीके
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
इस कमांड से, दिए गए नाम वाला अलार्म बंद हो जाता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं है
उस अलार्म का नाम जिसे बंद करना है. डिफ़ॉल्ट रूप से, यह खाली स्ट्रिंग होती है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
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 सेकंड तक नहीं बजेगा.
अगर आपने ऐप्लिकेशन या एक्सटेंशन को अनपैक करके लोड किया है, तो उसे डीबग करने में आपकी मदद करने के लिए, अलार्म को जितनी बार चाहें उतनी बार ट्रिगर किया जा सकता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं है
इस अलार्म की पहचान करने के लिए, नाम देना ज़रूरी नहीं है. डिफ़ॉल्ट रूप से, यह खाली स्ट्रिंग होती है.
-
alarmInfo
यह बताता है कि अलार्म कब बजना चाहिए. शुरू होने का समय,
whenयाdelayInMinutesमें से किसी एक के ज़रिए बताना ज़रूरी है. हालांकि, दोनों का इस्तेमाल नहीं किया जा सकता. अगरperiodInMinutesसेट किया गया है, तो अलार्म शुरुआती इवेंट के बाद हरperiodInMinutesमिनट में बजेगा. अगर बार-बार बजने वाले अलार्म के लिए,whenयाdelayInMinutesमें से कोई भी सेट नहीं किया गया है, तोdelayInMinutesके लिएperiodInMinutesको डिफ़ॉल्ट के तौर पर इस्तेमाल किया जाता है. -
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
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 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.