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