このエントリーをはてなブックマークに追加

node-notifierを使う

node-notifierを使ってElectronアプリケーショから通知を出すことができたので、それの覚書
win

mac

ubuntu





ここに書いてるとおり、他のモジュールと同じように
npm install --save node-notifier
でインストールして、
 
const notifier = require('node-notifier');
notifier.notify({
  'title': 'My notification',
  'message': 'Hello, there!'
});
ってやれば簡単に通知が出せちゃう。
titleとmessage以外にも
subtitle:文字列、titleとmessageの間に表示される
sound:true/false、macとwindowsにしか対応してない?
icon:画像の絶対パス、左側に表示される画像
contentImage:画像の絶対パス、右側に表示される画像
などなど他にもあるようです。

asarアーカイブとしてパッケージする際の注意点
これが特殊なのですよ。
node-notifierはasarアーカイブパッケージしちまったら動作しないようです。
ということで、パッケージする際は、
asar pack . app.asar --unpack "./node_modules/node-notifier/vendor/**"
ってやって、node-notifierの実行ファイル(?)はパッケージ対象から外さないといけないようです。
パッケージされなかったファイルはapp.asar.unpackedってディレクトリが作成され、ここにコピーされます。

asarパッケージした時のicon画像パスの注意点
アイコンを設定する時に普通は
icon: __dirname + '/img/icon.jpg',
とかやってパス指定すると思うけど、__dirnameはasarアーカイブなのでその中のディレクトリを指定することがでけまへん。
なので、app.asar.unpackedディレクトリの中に画像を入れて、
icon: __dirname + '.unpacked/img/icon.jpg',
みたいにやればでけた。