বর্ণনা
পর্যায়ক্রমে বা ভবিষ্যতে একটি নির্দিষ্ট সময়ে চালানোর জন্য কোড শিডিউল করতে chrome.alarms
API ব্যবহার করুন।
অনুমতি
alarms
chrome.alarms
API ব্যবহার করতে, ম্যানিফেস্টে "alarms"
অনুমতি ঘোষণা করুন:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
ধারণা এবং ব্যবহার
নির্ভরযোগ্য আচরণ নিশ্চিত করতে, API কীভাবে আচরণ করে তা বোঝা সহায়ক।
ডিভাইস ঘুম
একটি ডিভাইস ঘুমন্ত অবস্থায় অ্যালার্ম চলতে থাকে। যাইহোক, একটি অ্যালার্ম একটি ডিভাইস জাগবে না। ডিভাইসটি জেগে উঠলে, কোনো মিস করা অ্যালার্ম ফায়ার হবে। পুনরাবৃত্তি করা অ্যালার্মগুলি সর্বাধিক একবারে ফায়ার হবে এবং তারপরে ডিভাইসটি জেগে ওঠার সময় থেকে শুরু করে নির্দিষ্ট সময়কাল ব্যবহার করে পুনঃনির্ধারণ করা হবে, অ্যালার্মটি মূলত চালানোর জন্য সেট করা থেকে ইতিমধ্যে অতিবাহিত হয়েছে এমন কোনও সময় বিবেচনা না করে৷
জেদ
একটি এক্সটেনশন আপডেট না হওয়া পর্যন্ত অ্যালার্মগুলি সাধারণত টিকে থাকে৷ যাইহোক, এটি নিশ্চিত নয়, এবং ব্রাউজারটি পুনরায় চালু হলে অ্যালার্মগুলি সাফ হয়ে যেতে পারে৷ ফলস্বরূপ, যখন একটি অ্যালার্ম তৈরি করা হয় তখন সঞ্চয়স্থানে একটি মান সেট করার কথা বিবেচনা করুন এবং তারপরে নিশ্চিত করুন যে আপনার পরিষেবা কর্মী প্রতিবার শুরু করার সময় এটি বিদ্যমান রয়েছে। যেমন:
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();
উদাহরণ
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে একটি অ্যালার্ম ব্যবহার এবং প্রতিক্রিয়া জানাতে হয়। এই APIটি চেষ্টা করতে, chrome-extension-samples repository থেকে 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
মিনিটে আবার ফায়ার হবে৷ - নির্ধারিত সময়
সংখ্যা
যে সময়ে এই অ্যালার্মটি ফায়ার করার জন্য নির্ধারিত ছিল, সেই যুগের মিলিসেকেন্ডে (যেমন
Date.now() + n
)। পারফরম্যান্সের কারণে, অ্যালার্মটি এর চেয়ে বেশি পরিমাণে বিলম্বিত হতে পারে।
AlarmCreateInfo
বৈশিষ্ট্য
- মিনিটে বিলম্ব
সংখ্যা ঐচ্ছিক
মিনিটের মধ্যে সময়ের দৈর্ঘ্য যার পরে
onAlarm
ইভেন্টটি ফায়ার করা উচিত। - পিরিয়ডইন মিনিটস
সংখ্যা ঐচ্ছিক
সেট করা হলে, অনঅ্যালার্ম ইভেন্টটি
when
বাdelayInMinutes
দ্বারা নির্দিষ্ট করা প্রাথমিক ইভেন্টের প্রতিটিperiodInMinutes
মিনিট পরে ফায়ার করা উচিত। সেট না হলে, অ্যালার্ম শুধুমাত্র একবার জ্বলবে। - যখন
সংখ্যা ঐচ্ছিক
যে সময়ে অ্যালার্ম ফায়ার করা উচিত, সেই যুগের মিলিসেকেন্ডে (যেমন
Date.now() + n
)।
পদ্ধতি
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
প্রদত্ত নাম দিয়ে অ্যালার্ম সাফ করে।
পরামিতি
- নাম
স্ট্রিং ঐচ্ছিক
এলার্ম পরিষ্কার করার নাম। খালি স্ট্রিং ডিফল্ট.
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(wasCleared: boolean) => void
- সাফ করা হয়েছে
বুলিয়ান
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
Chrome 91+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
সমস্ত অ্যালার্ম সাফ করে।
পরামিতি
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(wasCleared: boolean) => void
- সাফ করা হয়েছে
বুলিয়ান
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
Chrome 91+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
একটি অ্যালার্ম তৈরি করে। alarmInfo
দ্বারা নির্দিষ্ট সময়(গুলি) কাছাকাছি, onAlarm
ইভেন্টটি চালু হয়৷ যদি একই নামের আরেকটি অ্যালার্ম থাকে (অথবা কোনো নাম উল্লেখ না থাকলে), এটি বাতিল করা হবে এবং এই অ্যালার্ম দ্বারা প্রতিস্থাপিত হবে।
ব্যবহারকারীর মেশিনে লোড কমানোর জন্য, Chrome প্রতি 30 সেকেন্ডে সর্বোচ্চ একবার অ্যালার্ম সীমিত করে কিন্তু তাদের ইচ্ছামত পরিমাণে বিলম্ব করতে পারে। অর্থাৎ, delayInMinutes
বা periodInMinutes
0.5
এর কম সেট করা সম্মানিত হবে না এবং একটি সতর্কতা সৃষ্টি করবে। when
সতর্কতা ছাড়াই "এখন" পরে 30 সেকেন্ডের কম সময়ে সেট করা যেতে পারে কিন্তু প্রকৃতপক্ষে অন্তত 30 সেকেন্ডের জন্য অ্যালার্ম ফায়ার করবে না।
আপনার অ্যাপ বা এক্সটেনশন ডিবাগ করতে সাহায্য করার জন্য, আপনি যখন এটি আনপ্যাক করে লোড করেন, তখন কত ঘন ঘন অ্যালার্ম ফায়ার হতে পারে তার কোনো সীমা নেই।
পরামিতি
- নাম
স্ট্রিং ঐচ্ছিক
এই অ্যালার্ম সনাক্ত করার জন্য ঐচ্ছিক নাম। খালি স্ট্রিং ডিফল্ট.
- অ্যালার্ম তথ্য
অ্যালার্ম কখন ফায়ার করা উচিত তা বর্ণনা করে। প্রাথমিক সময় অবশ্যই
when
বাdelayInMinutes
দ্বারা নির্দিষ্ট করা উচিত (কিন্তু উভয়ই নয়)। যদিperiodInMinutes
সেট করা থাকে, তবে প্রাথমিক ইভেন্টের পর প্রতিperiodInMinutes
মিনিটে অ্যালার্ম পুনরাবৃত্তি হবে। একটি পুনরাবৃত্তি অ্যালার্মের জন্যwhen
বাdelayInMinutes
সেট করা না থাকলে,periodInMinutes
delayInMinutes
জন্য ডিফল্ট হিসাবে ব্যবহৃত হয়। - কলব্যাক
ফাংশন ঐচ্ছিক
Chrome 111+callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void
রিটার্নস
প্রতিশ্রুতি <void>
Chrome 111+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
নির্দিষ্ট অ্যালার্ম সম্পর্কে বিশদ পুনরুদ্ধার করে।
পরামিতি
রিটার্নস
প্রতিশ্রুতি< অ্যালার্ম | undefined>
Chrome 91+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
getAll()
chrome.alarms.getAll(
callback?: function,
)
সব অ্যালার্ম একটি অ্যারে পায়.
পরামিতি
রিটার্নস
প্রতিশ্রুতি< অ্যালার্ম []>
Chrome 91+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।