বিজ্ঞপ্তি API ব্যবহার করুন

browser.notifications API আপনাকে টেমপ্লেট ব্যবহার করে নোটিফিকেশন তৈরি করতে এবং ব্যবহারকারীর সিস্টেম ট্রে-তে সেই নোটিফিকেশনগুলো দেখাতে দেয়:

সিস্টেম ব্যবহারকারী ট্রে-তে বিজ্ঞপ্তি

তারা দেখতে কেমন

রিচ নোটিফিকেশন চার ধরনের হয়ে থাকে: বেসিক, ইমেজ, লিস্ট এবং প্রোগ্রেস। সব নোটিফিকেশনে একটি টাইটেল, মেসেজ, নোটিফিকেশন মেসেজের বাম দিকে প্রদর্শিত একটি ছোট আইকন এবং একটি contextMessage ফিল্ড থাকে, যা হালকা রঙের ফন্টে তৃতীয় টেক্সট ফিল্ড হিসেবে দেখানো হয়।

একটি প্রাথমিক বিজ্ঞপ্তি:

মৌলিক বিজ্ঞপ্তি

তালিকা বিজ্ঞপ্তিগুলি যেকোনো সংখ্যক তালিকা আইটেম প্রদর্শন করে:

তালিকা বিজ্ঞপ্তি

ইমেজ নোটিফিকেশনে একটি ইমেজ প্রিভিউ অন্তর্ভুক্ত থাকে:

ছবি বিজ্ঞপ্তি

অগ্রগতি বিজ্ঞপ্তিতে একটি অগ্রগতি বার দেখানো হয়:

অগ্রগতি বিজ্ঞপ্তি

তারা কীভাবে আচরণ করে

ChromeOS-এ, নোটিফিকেশনগুলো ব্যবহারকারীর সিস্টেম ট্রে-তে দেখা যায় এবং ব্যবহারকারী সেগুলোকে বাতিল না করা পর্যন্ত সেখানেই থাকে। সিস্টেম ট্রে সমস্ত নতুন নোটিফিকেশনের একটি গণনা রাখে। ব্যবহারকারী সিস্টেম ট্রে-তে নোটিফিকেশনগুলো দেখে ফেলার সাথে সাথে, গণনাটি শূন্যে রিসেট হয়ে যায়।

নোটিফিকেশনগুলোকে -২ থেকে ২ এর মধ্যে একটি প্রায়োরিটি দেওয়া যেতে পারে। ০-এর কম প্রায়োরিটি ChromeOS নোটিফিকেশন সেন্টারে দেখানো হয় এবং অন্যান্য প্ল্যাটফর্মে একটি এরর তৈরি করে। ডিফল্ট প্রায়োরিটি হলো ০। ০-এর বেশি প্রায়োরিটিগুলো ক্রমবর্ধমান সময়কালের জন্য দেখানো হয় এবং সিস্টেম ট্রে-তে আরও উচ্চ প্রায়োরিটির নোটিফিকেশন প্রদর্শন করা যেতে পারে।

priority সেটিং ম্যাকওএস-এ নোটিফিকেশনের ক্রমকে প্রভাবিত করে না।

তথ্য প্রদর্শনের পাশাপাশি, সব ধরনের নোটিফিকেশনে সর্বোচ্চ দুটি অ্যাকশন আইটেম অন্তর্ভুক্ত থাকতে পারে। ব্যবহারকারীরা যখন কোনো অ্যাকশন আইটেমে ক্লিক করেন, তখন আপনার এক্সটেনশনটি উপযুক্ত পদক্ষেপ নিতে পারে। উদাহরণস্বরূপ, যখন ব্যবহারকারী 'Reply'-তে ক্লিক করেন, তখন ইমেল অ্যাপটি খোলে এবং ব্যবহারকারী উত্তরটি সম্পূর্ণ করতে পারেন:

বিজ্ঞপ্তিতে পদক্ষেপ

কীভাবে তাদের বিকাশ করা যায়

এই API ব্যবহার করতে, options প্যারামিটার ব্যবহার করে নোটিফিকেশনের বিবরণ দিয়ে notifications.create() মেথডটি কল করুন:

await browser.notifications.create(id, options);

notifications.NotificationOptions এ অবশ্যই একটি notifications.TemplateType অন্তর্ভুক্ত থাকতে হবে, যা উপলব্ধ নোটিফিকেশনের বিবরণ এবং সেই বিবরণগুলো কীভাবে প্রদর্শিত হবে তা নির্ধারণ করে।

একটি প্রাথমিক বিজ্ঞপ্তি তৈরি করুন

সকল টেমপ্লেট টাইপে ( basic , image , list এবং progress ) অবশ্যই একটি নোটিফিকেশন title ও message থাকতে হবে, সেইসাথে একটি iconUrl ) থাকতে হবে, যা হলো একটি ছোট আইকনের লিঙ্ক এবং এই আইকনটি নোটিফিকেশন মেসেজের বাম পাশে প্রদর্শিত হয়।

এখানে একটি basic টেমপ্লেটের উদাহরণ দেওয়া হলো:

var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon"
}

একটি ছবি ব্যবহার করুন

image টেমপ্লেট টাইপে একটি imageUrl অন্তর্ভুক্ত থাকে, যা নোটিফিকেশনের মধ্যে প্রিভিউ করা একটি ইমেজের লিঙ্ক। উল্লেখ্য যে, macOS ব্যবহারকারীদের ইমেজ দেখানো হয় না।

var opt = {
  type: "image",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  imageUrl: "url_to_preview_image"
}

একটি তালিকা বিজ্ঞপ্তি তৈরি করুন

list টেমপ্লেটটি items একটি তালিকা আকারে প্রদর্শন করে। উল্লেখ্য যে, macOS ব্যবহারকারীদের জন্য শুধুমাত্র প্রথম আইটেমটি প্রদর্শিত হয়।

var opt = {
  type: "list",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  items: [{ title: "Item1", message: "This is item 1."},
          { title: "Item2", message: "This is item 2."},
          { title: "Item3", message: "This is item 3."}]
}```

### Create progress notification {: #progress }

The `progress` template displays a progress bar where current progress ranges from 0 to 100. On macOS the progress bar displays as a percentage value in the notification title instead of in the progress bar.

```js
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

ঘটনাগুলোর প্রতি মনোযোগ দিন এবং সাড়া দিন।

সকল নোটিফিকেশনে ইভেন্ট লিসেনার এবং ইভেন্ট হ্যান্ডলার অন্তর্ভুক্ত থাকতে পারে, যা ব্যবহারকারীর কার্যকলাপের প্রতিক্রিয়া জানায় ( browser.events দেখুন)। উদাহরণস্বরূপ, আপনি notifications.onButtonClicked ইভেন্টের প্রতিক্রিয়া জানাতে একটি ইভেন্ট হ্যান্ডলার লিখতে পারেন।

ইভেন্ট লিসেনার:

browser.notifications.onButtonClicked.addListener(replyBtnClick);

ইভেন্ট হ্যান্ডলার:

function replyBtnClick {
    //Write function to respond to user action.
}

সার্ভিস ওয়ার্কারের মধ্যে ইভেন্ট লিসেনার এবং হ্যান্ডলার অন্তর্ভুক্ত করার কথা বিবেচনা করুন, যাতে এক্সটেনশনটি চালু না থাকলেও নোটিফিকেশন পপ-আপ হতে পারে।