目次
動作環境
Electron: 1.3.9
通知領域にアイコンを表示したい
Windowsだと何かアプリを起動した時に、右下にある通知領域にアイコンが表示されて、右クリックとかするとメニューが表示されるっていうのが結構ありますよね?
Electronでも同じことできないかなーと思っていたら、ありました。
公式ドキュメントだと以下のURL
実装
実際に導入したものが以下のソースです。
'use strict'; // Electronのモジュール const electron = require("electron"); const Tray = electron.Tray; const Menu = electron.Menu; // アプリケーションをコントロールするモジュール const app = electron.app; // ウィンドウを作成するモジュール const BrowserWindow = electron.BrowserWindow; // メインウィンドウはGCされないようにグローバル宣言 let mainWindow; let tray = null; // 全てのウィンドウが閉じたら終了 app.on('window-all-closed', function() { if (process.platform != 'darwin') { app.quit(); } }); // Electronの初期化完了後に実行 app.on('ready', function() { createTray(); // メイン画面の表示。ウィンドウの幅、高さを指定できる mainWindow = new BrowserWindow({width: 800, height: 600}); mainWindow.loadURL('file://' + __dirname + '/index.html'); // ウィンドウが閉じられたらアプリも終了 mainWindow.on('closed', function() { mainWindow = null; }); }); // 通知領域を実装する function createTray() { // 通知領域に表示するアイコンを指定(必須) tray = new Tray('./public/images/sample.png'); // 通知領域をクリックした際のメニュー const contextMenu = Menu.buildFromTemplate([ { label: '新規記事', click (menuItem){ subWindow() } }, { type: 'separator' }, { label: '閉じる', click (menuItem){ app.quit(); } } ]) // メニューを設定 tray.setContextMenu(contextMenu) // 通知領域のアイコンにマウスを載せたときのタイトル tray.setToolTip('通知領域テスト') //クリック時の操作を設定 tray.on('click', () => { // メニューを表示 tray.popUpContextMenu(contextMenu) }) }
以上、いかがでしょうか?
今日はこの辺でー