Electron এর Notification API ব্যবহার করে আপনি ডেস্কটপ অ্যাপ্লিকেশনে সিস্টেম নোটিফিকেশন তৈরি করতে পারেন। এই API ব্যবহার করে সহজে পুশ নোটিফিকেশন পাঠানো সম্ভব, যা ব্যবহারকারীদের নজর আকর্ষণ করতে সাহায্য করে। Notification API মূলত Main Process থেকে কাজ করে এবং এটি HTML5 Notifications এর মত কাজ করে।
Notification API এর বৈশিষ্ট্য
- Desktop Notifications: ব্যবহারকারীর ডিসপ্লে স্ক্রীনে সিস্টেম নোটিফিকেশন প্রদর্শন করা।
- Customizable: নোটিফিকেশনগুলোর শিরোনাম, বডি, আইকন এবং টাইমআউট কাস্টমাইজ করা যায়।
- Cross-Platform: Electron অ্যাপ্লিকেশন Windows, macOS, এবং Linux এ নোটিফিকেশন পাঠানোর ক্ষমতা রাখে।
Notification API এর ব্যবহার
১. Main Process থেকে Notification পাঠানো
Electron এ Notification তৈরি এবং প্রদর্শন করতে Notification কনস্ট্রাক্টর ব্যবহার করা হয়।
উদাহরণ: Main Process (main.js)
const { app, BrowserWindow, Notification } = require('electron');
let mainWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
},
});
mainWindow.loadFile('index.html');
// Notification তৈরি এবং প্রদর্শন
const notification = new Notification({
title: 'নতুন নোটিফিকেশন!',
body: 'এটি একটি উদাহরণ নোটিফিকেশন।'
});
notification.show(); // নোটিফিকেশন দেখানো
});
- title: নোটিফিকেশনের শিরোনাম।
- body: নোটিফিকেশনের মূল বর্ণনা বা টেক্সট।
- show(): নোটিফিকেশনটি স্ক্রীনে প্রদর্শন করা।
২. Notification কাস্টমাইজেশন
নোটিফিকেশন আরও কাস্টমাইজ করা যায় যেমন আইকন, প্রগ্রেস, টাইমআউট ইত্যাদি।
উদাহরণ: কাস্টম আইকন সহ নোটিফিকেশন
const notification = new Notification({
title: 'কাস্টম আইকন নোটিফিকেশন',
body: 'এটি একটি কাস্টম আইকন সহ নোটিফিকেশন!',
icon: 'path/to/your/icon.png' // আইকন ফাইল
});
notification.show();
- icon: এখানে আপনি নোটিফিকেশনের জন্য একটি কাস্টম আইকন নির্ধারণ করতে পারেন।
উদাহরণ: নোটিফিকেশন প্রগ্রেস সহ
const notification = new Notification({
title: 'নোটিফিকেশন প্রগ্রেস',
body: 'ডাউনলোড চলছে...',
icon: 'path/to/your/icon.png'
});
// সিস্টেমে একটি প্রগ্রেসবার যোগ করা
notification.on('click', () => {
console.log('নোটিফিকেশন ক্লিক করা হয়েছে!');
});
notification.show();
৩. Renderer Process থেকে Notification পাঠানো
যদি আপনি Renderer Process থেকে নোটিফিকেশন পাঠাতে চান, তবে Main Process এর সাথে IPC (Inter-Process Communication) ব্যবহার করতে হবে।
উদাহরণ: Renderer Process থেকে Main Process এ নোটিফিকেশন পাঠানো
১. Main Process (main.js)
const { app, BrowserWindow, ipcMain, Notification } = require('electron');
let mainWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
},
});
mainWindow.loadFile('index.html');
// Renderer থেকে মেসেজ গ্রহণ
ipcMain.on('show-notification', (event, args) => {
const notification = new Notification({
title: args.title,
body: args.body
});
notification.show();
});
});
২. Renderer Process (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Notification Example</title>
</head>
<body>
<h1>Electron নোটিফিকেশন উদাহরণ</h1>
<button id="notifyButton">নোটিফিকেশন দেখাও</button>
<script>
const { ipcRenderer } = require('electron');
document.getElementById('notifyButton').addEventListener('click', () => {
// Main Process এ নোটিফিকেশন পাঠানো
ipcRenderer.send('show-notification', { title: 'নতুন নোটিফিকেশন', body: 'এই নোটিফিকেশনটি Renderer থেকে এসেছে!' });
});
</script>
</body>
</html>
এখানে, Renderer Process একটি বাটন ক্লিকের মাধ্যমে Main Process-এ মেসেজ পাঠাচ্ছে এবং Main Process সেই মেসেজটি গ্রহণ করে এবং নোটিফিকেশন তৈরি করে।
৪. নোটিফিকেশন সাউন্ড এবং টাইমআউট
Electron নোটিফিকেশন API সাউন্ড এবং টাইমআউট কনফিগার করার সুযোগও দেয়। আপনি timeout এবং sound ব্যবহার করে নোটিফিকেশনের আচরণ নিয়ন্ত্রণ করতে পারেন।
const notification = new Notification({
title: 'এটি একটি টেস্ট নোটিফিকেশন',
body: 'এটি একটি সাউন্ড সহ নোটিফিকেশন!',
sound: 'path/to/soundfile.mp3', // সাউন্ড যোগ করা
timeoutType: 'default', // নোটিফিকেশন স্বয়ংক্রিয়ভাবে বন্ধ হবে
});
notification.show();
সারাংশ
Electron এর Notification API আপনাকে আপনার ডেস্কটপ অ্যাপ্লিকেশন থেকে সিস্টেম নোটিফিকেশন পাঠানোর সুবিধা দেয়। এটি Main Process থেকে কাজ করে এবং ব্যবহারকারীর নজর আকর্ষণ করার জন্য ব্যবহৃত হয়। আপনি নোটিফিকেশনকে কাস্টমাইজ করতে পারেন যেমন শিরোনাম, বডি, আইকন, টাইমআউট, এবং সাউন্ড। Renderer Process থেকে Main Process এর সাথে IPC ব্যবহার করে নোটিফিকেশন পাঠানো সম্ভব।
Read more