প্রকাশিত: ২৪ অক্টোবর, ২০১৯
নোটিফিকেশন ট্রিগার কি?
ওয়েব ডেভেলপাররা ওয়েব নোটিফিকেশন API ব্যবহার করে বিজ্ঞপ্তি প্রদর্শন করতে পারেন। এই বৈশিষ্ট্যটি প্রায়শই পুশ API-এর সাথে ব্যবহারকারীকে সময়-সংবেদনশীল তথ্য, যেমন ব্রেকিং নিউজ ইভেন্ট বা প্রাপ্ত বার্তা সম্পর্কে অবহিত করার জন্য ব্যবহার করা হয়। ব্যবহারকারীর ডিভাইসে জাভাস্ক্রিপ্ট চালানোর মাধ্যমে বিজ্ঞপ্তিগুলি দেখানো হয়।
পুশ এপিআই-এর সমস্যা হল, এটি নোটিফিকেশন ট্রিগার করার জন্য নির্ভরযোগ্য নয়, যা সময় বা অবস্থানের মতো কোনও নির্দিষ্ট শর্ত পূরণ হলে অবশ্যই দেখাতে হবে। সময়-ভিত্তিক শর্তের একটি উদাহরণ হল একটি ক্যালেন্ডার বিজ্ঞপ্তি যা আপনাকে দুপুর ২ টায় আপনার বসের সাথে একটি গুরুত্বপূর্ণ মিটিংয়ের কথা মনে করিয়ে দেয়। অবস্থান-ভিত্তিক শর্তের একটি উদাহরণ হল একটি বিজ্ঞপ্তি যা আপনার মুদি দোকানের আশেপাশে প্রবেশ করার সময় আপনাকে দুধ কিনতে মনে করিয়ে দেয়। নেটওয়ার্ক সংযোগ বা ব্যাটারি-সংরক্ষণকারী বৈশিষ্ট্য যেমন ডোজ মোড পুশ-ভিত্তিক বিজ্ঞপ্তিগুলির ডেলিভারি বিলম্বিত করতে পারে।
নোটিফিকেশন ট্রিগারগুলি আপনাকে আগে থেকেই নোটিফিকেশনের ট্রিগারিং অবস্থা নির্ধারণ করে এই সমস্যার সমাধান করে, যাতে নেটওয়ার্ক সংযোগ না থাকলেও বা ডিভাইসটি ব্যাটারি সেভার মোডে থাকলেও অপারেটিং সিস্টেম সঠিক সময়ে নোটিফিকেশন সরবরাহ করতে পারে।
ব্যবহারের ক্ষেত্রে
ক্যালেন্ডার অ্যাপ্লিকেশনগুলি আসন্ন মিটিংগুলির কথা ব্যবহারকারীকে মনে করিয়ে দেওয়ার জন্য সময়-ভিত্তিক বিজ্ঞপ্তি ট্রিগার ব্যবহার করতে পারে। একটি ক্যালেন্ডার অ্যাপের জন্য ডিফল্ট বিজ্ঞপ্তি স্কিম হতে পারে একটি মিটিংয়ের এক ঘন্টা আগে প্রথম সতর্কতা বিজ্ঞপ্তি দেখানো এবং তারপরে পাঁচ মিনিট আগে আরও একটি জরুরি বিজ্ঞপ্তি দেখানো।
একটি টিভি নেটওয়ার্ক ব্যবহারকারীদের মনে করিয়ে দিতে পারে যে তাদের প্রিয় টিভি শো শুরু হতে চলেছে অথবা একটি সম্মেলনের লাইভস্ট্রিম শুরু হতে চলেছে।
টাইম জোন কনভার্সন সাইটগুলি তাদের ব্যবহারকারীদের টেলিফোন কনফারেন্স বা ভিডিও কলের জন্য অ্যালার্ম নির্ধারণ করতে সময়-ভিত্তিক বিজ্ঞপ্তি ট্রিগার ব্যবহার করতে পারে।
বর্তমান অবস্থা
| ধাপ | অবস্থা |
|---|---|
| ১. ব্যাখ্যাকারী তৈরি করুন | সম্পূর্ণ |
| 2. স্পেসিফিকেশনের প্রাথমিক খসড়া তৈরি করুন | শুরু হয়নি |
| ৩. মতামত সংগ্রহ করুন এবং নকশার উপর পুনরাবৃত্তি করুন। | চলছে |
| ৪. অরিজিন ট্রায়াল | সম্পূর্ণ |
| ৫. লঞ্চ | শুরু হয়নি |
বিজ্ঞপ্তি ট্রিগার ব্যবহার করুন
অরিজিন ট্রায়াল টোকেন ছাড়াই স্থানীয়ভাবে Notification Triggers API পরীক্ষা করতে, about://flags এ #enable-experimental-web-platform-features ফ্ল্যাগটি সক্ষম করুন।
বৈশিষ্ট্য সনাক্তকরণ
showTrigger প্রোপার্টির অস্তিত্ব পরীক্ষা করে আপনি জানতে পারবেন যে ব্রাউজারটি Notification Trigger সমর্থন করে কিনা:
if ('showTrigger' in Notification.prototype) {
/* Notification Triggers supported */
}
একটি বিজ্ঞপ্তি নির্ধারণ করুন
একটি বিজ্ঞপ্তি নির্ধারণ করা একটি নিয়মিত পুশ বিজ্ঞপ্তি দেখানোর মতোই, তবে আপনাকে বিজ্ঞপ্তি options অবজেক্টের মান হিসাবে একটি TimestampTrigger অবজেক্ট সহ একটি showTrigger শর্ত বৈশিষ্ট্য পাস করতে হবে।
const createScheduledNotification = async (tag, title, timestamp) => {
const registration = await navigator.serviceWorker.getRegistration();
registration.showNotification(title, {
tag: tag,
body: 'This notification was scheduled 30 seconds ago',
showTrigger: new TimestampTrigger(timestamp + 30 * 1000),
});
};
একটি নির্ধারিত বিজ্ঞপ্তি বাতিল করুন
নির্ধারিত বিজ্ঞপ্তি বাতিল করতে, প্রথমে ServiceWorkerRegistration.getNotifications() এর মাধ্যমে একটি নির্দিষ্ট ট্যাগের সাথে মেলে এমন সমস্ত বিজ্ঞপ্তির একটি তালিকা অনুরোধ করুন। মনে রাখবেন যে তালিকায় অন্তর্ভুক্ত করার জন্য আপনাকে includeTriggered পতাকাটি পাস করতে হবে:
const cancelScheduledNotification = async (tag) => {
const registration = await navigator.serviceWorker.getRegistration();
const notifications = await registration.getNotifications({
tag: tag,
includeTriggered: true,
});
notifications.forEach((notification) => notification.close());
};
ডিবাগ
আপনি বিজ্ঞপ্তি ডিবাগ করতে Chrome DevTools বিজ্ঞপ্তি প্যানেল ব্যবহার করতে পারেন। ডিবাগিং শুরু করতে, ইভেন্ট রেকর্ডিং শুরু করুন টিপুন।
অথবা কন্ট্রোল + ই ( ম্যাক-এ কমান্ড + ই )। ক্রোম ডেভটুলস তিন দিনের জন্য সমস্ত বিজ্ঞপ্তি ইভেন্ট রেকর্ড করে, যার মধ্যে শিডিউল করা, প্রদর্শিত এবং বন্ধ বিজ্ঞপ্তি অন্তর্ভুক্ত, এমনকি ডেভটুলস বন্ধ থাকলেও।


ডেমো
আপনি একটি ডেমোতে নোটিফিকেশন ট্রিগারগুলিকে কার্যকর দেখতে পাবেন, যা আপনাকে বিজ্ঞপ্তিগুলি শিডিউল করতে, নির্ধারিত বিজ্ঞপ্তিগুলি তালিকাভুক্ত করতে এবং সেগুলি বাতিল করতে দেয়।

নিরাপত্তা এবং অনুমতি
Chrome টিম "শক্তিশালী ওয়েব প্ল্যাটফর্ম বৈশিষ্ট্যগুলিতে অ্যাক্সেস নিয়ন্ত্রণ" -এ সংজ্ঞায়িত মূল নীতিগুলি ব্যবহার করে নোটিফিকেশন ট্রিগার API ডিজাইন এবং বাস্তবায়ন করেছে, যার মধ্যে রয়েছে ব্যবহারকারীর নিয়ন্ত্রণ, স্বচ্ছতা এবং এরগনোমিক্স। যেহেতু এই API-এর জন্য পরিষেবা কর্মীদের প্রয়োজন, তাই এটির জন্য একটি নিরাপদ প্রেক্ষাপটও প্রয়োজন। API ব্যবহার করার জন্য নিয়মিত পুশ বিজ্ঞপ্তির মতো একই অনুমতি প্রয়োজন।
ব্যবহারকারী নিয়ন্ত্রণ
এই API শুধুমাত্র ServiceWorkerRegistration এর প্রেক্ষাপটে উপলব্ধ। এর অর্থ হল সমস্ত প্রয়োজনীয় ডেটা একই প্রেক্ষাপটে সংরক্ষণ করা হয় এবং পরিষেবা কর্মী মুছে ফেলা হলে অথবা ব্যবহারকারী মূল সাইটের সমস্ত ডেটা মুছে ফেললে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। কুকিজ ব্লক করা পরিষেবা কর্মীদের Chrome এ ইনস্টল করা থেকেও বাধা দেয়, এবং তাই এই API ব্যবহার করা থেকে বিরত রাখে। ব্যবহারকারী সাইট সেটিংসে সাইটের জন্য সর্বদা বিজ্ঞপ্তি অক্ষম করতে পারেন।
স্বচ্ছতা
পুশ এপিআই-এর বিপরীতে, এই এপিআই নেটওয়ার্কের উপর নির্ভর করে না, যার অর্থ হল নির্ধারিত বিজ্ঞপ্তিগুলির জন্য আগে থেকেই সমস্ত প্রয়োজনীয় ডেটা প্রয়োজন, যার মধ্যে badge , icon এবং image বৈশিষ্ট্য দ্বারা উল্লেখিত চিত্র সংস্থান অন্তর্ভুক্ত। এর অর্থ হল একটি নির্ধারিত বিজ্ঞপ্তি দেখানো ডেভেলপার দ্বারা পর্যবেক্ষণযোগ্য নয় এবং ব্যবহারকারী বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট না করা পর্যন্ত পরিষেবা কর্মীকে জাগিয়ে তোলার সাথে জড়িত নয়।
নিবন্ধের তারিখ অনুসারে, ডেভেলপাররা IP ঠিকানা ভূ-অবস্থান অনুসন্ধানের মতো সম্ভাব্য গোপনীয়তা-আক্রমণকারী পদ্ধতির মাধ্যমে ব্যবহারকারী সম্পর্কে তথ্য পেতে পারে এমন কোনও পরিচিত উপায় নেই। এই নকশাটি বৈশিষ্ট্যটিকে ঐচ্ছিকভাবে অ্যান্ড্রয়েডের AlarmManager এর মতো অপারেটিং সিস্টেম দ্বারা প্রদত্ত সময়সূচী প্রক্রিয়াগুলিতে ট্যাপ করার অনুমতি দেয়, যা ব্যাটারি সংরক্ষণে সহায়তা করে।
প্রতিক্রিয়া
Chrome টিম নোটিফিকেশন ট্রিগারের সাথে আপনার অভিজ্ঞতা সম্পর্কে জানতে চায়।
API ডিজাইন সম্পর্কে আমাদের বলুন
API-তে কি এমন কিছু আছে যা আপনার প্রত্যাশা অনুযায়ী কাজ করছে না? অথবা আপনার ধারণা বাস্তবায়নের জন্য প্রয়োজনীয় পদ্ধতি বা বৈশিষ্ট্যের অভাব আছে? নিরাপত্তা মডেল সম্পর্কে কোন প্রশ্ন বা মন্তব্য আছে? Notification Triggers GitHub repo- তে একটি স্পেসিফিকেশন সমস্যা দাখিল করুন, অথবা বিদ্যমান কোনও সমস্যায় আপনার মতামত যোগ করুন।
বাস্তবায়নে সমস্যা?
Chrome এর বাস্তবায়নে কি আপনি কোন বাগ খুঁজে পেয়েছেন? নাকি বাস্তবায়নটি স্পেসিফিকেশন থেকে আলাদা? new.crbug.com এ একটি বাগ ফাইল করুন। যতটা সম্ভব বিস্তারিত তথ্য, পুনরুৎপাদনের নির্দেশাবলী অন্তর্ভুক্ত করতে ভুলবেন না এবং Components কে UI>Notifications এ সেট করুন।
API ব্যবহার করার পরিকল্পনা করছেন?
আপনার সাইটে নোটিফিকেশন ট্রিগার ব্যবহার করার পরিকল্পনা করছেন? আপনার জনসাধারণের সমর্থন আমাদের বৈশিষ্ট্যগুলিকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার বিক্রেতাদের দেখায় যে তাদের সমর্থন করা কতটা গুরুত্বপূর্ণ। #NotificationTriggers হ্যাশট্যাগ ব্যবহার করে @ChromiumDev- এ একটি টুইট পাঠান এবং আপনি কোথায় এবং কীভাবে এটি ব্যবহার করছেন তা আমাদের জানান।
সহায়ক লিংক
- পাবলিক ব্যাখ্যাকারী
- ট্র্যাকিং বাগ
- ChromeStatus.com এন্ট্রি
- ব্লিঙ্ক কম্পোনেন্ট:
UI>Notifications
স্বীকৃতি
নোটিফিকেশন ট্রিগারস বাস্তবায়ন করেছেন রিচার্ড নল এবং ব্যাখ্যাকারী লিখেছেন পিটার বেভারলু , রিচার্ডের অবদানে। নিম্নলিখিত ব্যক্তিরা নিবন্ধটি পর্যালোচনা করেছেন: জো মেডলি , পিট লেপেজ , পাশাপাশি রিচার্ড এবং পিটার।