ब्यौरा
chrome.alarms API का इस्तेमाल करके, कोड को समय-समय पर या आने वाले समय में किसी तय समय पर चलाने के लिए शेड्यूल करें.
अनुमतियां
alarmschrome.alarms एपीआई का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में "alarms" अनुमति के बारे में एलान करें:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
कॉन्सेप्ट और इस्तेमाल करने का तरीका
एपीआई के काम करने के तरीके को समझने से, यह पक्का करने में मदद मिलती है कि वह भरोसेमंद तरीके से काम कर रहा है.
डिवाइस स्लीप
डिवाइस के स्लीप मोड में होने पर भी अलार्म बजते हैं. हालांकि, अलार्म से डिवाइस चालू नहीं होगा. डिवाइस के चालू होने पर, छूटे हुए अलार्म बजेंगे. दोहराई जाने वाली अलार्म, ज़्यादा से ज़्यादा एक बार बजेगी. इसके बाद, डिवाइस के चालू होने के बाद से तय की गई अवधि के हिसाब से, अलार्म को फिर से शेड्यूल किया जाएगा. इसमें अलार्म के सेट होने के बाद से अब तक का समय शामिल नहीं किया जाएगा.
परसिस्टेंस
आम तौर पर, अलार्म तब तक बने रहते हैं, जब तक एक्सटेंशन अपडेट नहीं हो जाता. हालांकि, इसकी कोई गारंटी नहीं है. ब्राउज़र को फिर से चालू करने पर, अलार्म बंद हो सकते हैं. इसलिए, पक्का करें कि जब भी आपका सर्विस वर्कर शुरू हो, तब यह मौजूद हो. उदाहरण के लिए:
async function checkAlarmState() {
const alarm = await chrome.alarms.get("my-alarm");
if (!alarm) {
await chrome.alarms.create("my-alarm", { periodInMinutes: 1 });
}
}
checkAlarmState();
उदाहरण
यहां दिए गए उदाहरणों में, अलार्म का इस्तेमाल करने और उसका जवाब देने का तरीका बताया गया है. इस एपीआई को आज़माने के लिए, 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 ज़रूरी नहीं
अगर यह वैल्यू शून्य नहीं है, तो इसका मतलब है कि अलार्म बार-बार बजने वाला अलार्म है और यह
periodInMinutesमिनट में फिर से बजेगा. -
persistAcrossSessions
बूलियन
मंज़ूरी मिलना बाकी हैक्या अलार्म को सेशन (ब्राउज़र रीस्टार्ट) के दौरान सेव किया जाना चाहिए.
-
scheduledTime
संख्या
यह अलार्म किस समय के लिए शेड्यूल किया गया था.यह समय, ईपॉक के बाद के मिलीसेकंड में होता है. जैसे,
Date.now() + n. परफ़ॉर्मेंस की वजह से, अलार्म को इस समय के बाद कुछ समय के लिए रोका जा सकता है.
AlarmCreateInfo
प्रॉपर्टी
-
delayInMinutes
number ज़रूरी नहीं
onAlarmइवेंट को ट्रिगर करने के लिए, कितने मिनट का समय तय करना है. -
periodInMinutes
number ज़रूरी नहीं
अगर इसे सेट किया जाता है, तो
whenयाdelayInMinutesसे तय किए गए शुरुआती इवेंट के बाद, हरperiodInMinutesमिनट में onAlarm इवेंट ट्रिगर होना चाहिए. अगर इसे सेट नहीं किया गया है, तो अलार्म सिर्फ़ एक बार बजेगा. -
persistAcrossSessions
boolean optional
मंज़ूरी मिलना बाकी हैक्या अलार्म को सेशन (ब्राउज़र रीस्टार्ट) के दौरान सेव किया जाना चाहिए. Chrome में, यह डिफ़ॉल्ट रूप से सही पर सेट होता है, ताकि यह पुराने व्यवहार से मेल खा सके. हालांकि, आपको इसे साफ़ तौर पर सेट करना चाहिए, ताकि यह अलग-अलग ब्राउज़र के साथ ज़्यादा से ज़्यादा काम कर सके.
-
कब
number ज़रूरी नहीं
वह समय जब अलार्म बजना चाहिए.यह समय, epoch के बाद के मिलीसेकंड में होता है. उदाहरण के लिए,
Date.now() + n.
तरीके
clear()
chrome.alarms.clear(
name?: string,
): Promise<boolean>
इस कमांड से, दिए गए नाम वाला अलार्म बंद हो जाता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं है
उस अलार्म का नाम जिसे बंद करना है. डिफ़ॉल्ट रूप से, यह खाली स्ट्रिंग होती है.
रिटर्न
-
Promise<boolean>
Chrome 91 या इसके बाद का वर्शन
clearAll()
chrome.alarms.clearAll(): Promise<boolean>
इससे सभी अलार्म मिट जाते हैं.
रिटर्न
-
Promise<boolean>
Chrome 91 या इसके बाद का वर्शन
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
): Promise<void>
अलार्म सेट करता है. alarmInfo में बताए गए समय के आस-पास, onAlarm इवेंट ट्रिगर होता है. अगर इसी नाम का कोई दूसरा अलार्म है (या अगर कोई नाम नहीं दिया गया है, तो बिना नाम वाला अलार्म), तो उसे रद्द कर दिया जाएगा और उसकी जगह यह अलार्म सेट हो जाएगा.
उपयोगकर्ता के डिवाइस पर लोड कम करने के लिए, Chrome हर 30 सेकंड में सिर्फ़ एक बार अलार्म सेट करने की अनुमति देता है. हालांकि, अलार्म को किसी भी समय के लिए सेट किया जा सकता है. इसका मतलब है कि delayInMinutes या periodInMinutes को 0.5 से कम पर सेट करने पर, इसे स्वीकार नहीं किया जाएगा और आपको एक चेतावनी दिखेगी. when को "अभी" के बाद 30 सेकंड से कम समय के लिए सेट किया जा सकता है. हालांकि, ऐसा करने पर कोई चेतावनी नहीं मिलेगी. अलार्म कम से कम 30 सेकंड तक नहीं बजेगा.
अगर आपने ऐप्लिकेशन या एक्सटेंशन को अनपैक करके लोड किया है, तो उसे डीबग करने में आपकी मदद करने के लिए, अलार्म को जितनी बार चाहें उतनी बार ट्रिगर किया जा सकता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं है
इस अलार्म की पहचान करने के लिए, नाम देना ज़रूरी नहीं है. डिफ़ॉल्ट रूप से, यह खाली स्ट्रिंग होती है.
-
alarmInfo
यह बताता है कि अलार्म कब बजना चाहिए. शुरू होने का समय,
whenयाdelayInMinutesमें से किसी एक के ज़रिए बताया जाना चाहिए. दोनों का इस्तेमाल नहीं किया जा सकता. अगरperiodInMinutesसेट किया गया है, तो अलार्म शुरुआती इवेंट के बाद हरperiodInMinutesमिनट में बजेगा. अगर बार-बार बजने वाले अलार्म के लिए,whenयाdelayInMinutesमें से कोई भी विकल्प सेट नहीं किया गया है, तोdelayInMinutesके लिएperiodInMinutesको डिफ़ॉल्ट विकल्प के तौर पर इस्तेमाल किया जाता है.
रिटर्न
-
Promise<void>
Chrome 111 या इसके बाद का वर्शनयह प्रॉमिस तब पूरा होता है, जब अलार्म बना दिया जाता है.
get()
chrome.alarms.get(
name?: string,
): Promise<Alarm | undefined>
चुने गए अलार्म के बारे में जानकारी देता है.
पैरामीटर
-
नाम
string ज़रूरी नहीं है
उस अलार्म का नाम जिसे पाना है. डिफ़ॉल्ट रूप से, यह खाली स्ट्रिंग होती है.
रिटर्न
-
Promise<Alarm | undefined>
Chrome 91 या इसके बाद का वर्शन
रिटर्न
-
Promise<Alarm[]>
Chrome 91 या इसके बाद का वर्शन