Electron項(xiàng)目中的通知欄功能使用了
node-notifier
,在另起爐灶犁柜,修改了項(xiàng)目名稱和logo后川梅,發(fā)現(xiàn)通知欄的icon和標(biāo)題仍是原來(lái)的,深入研究后乔遮,發(fā)現(xiàn)修改通知欄并不那么簡(jiǎn)單...
在mac上扮超,node-notifier
是通過(guò)調(diào)用封裝好的terminal-notifier實(shí)現(xiàn),雖然蹋肮,通過(guò)提供的nodejs接口出刷,我們可以傳遞通知消息的title
, message
等內(nèi)容,但顯示的圖標(biāo)和應(yīng)用名稱仍是terminal-notifier
的坯辩。
我們需要重定制一個(gè)terminal-notifier
的mac應(yīng)用馁龟。
參考
相關(guān)討論:Issue #71 for more info
流程
-
clone xcode項(xiàng)目
先clone terminal-notifier的源碼,https://github.com/mikaelbr/terminal-notifier
打開后綴為.xcodeproj的文件(確保已安裝后Xcode)
-
修改項(xiàng)目名
這一步是為了通知欄顯示的應(yīng)用名為我們需要的漆魔。修改如下圖兩處:
-
修改icon
項(xiàng)目下
Terminal.icns
是通知欄圖標(biāo)加載的應(yīng)用坷檩,.icns
是mac應(yīng)用使用的圖片的格式,如果已經(jīng)有過(guò)打包Electron項(xiàng)目的經(jīng)驗(yàn)改抡,這里應(yīng)該知道如何生成.icns文件矢炼。這里推薦在線轉(zhuǎn)換網(wǎng)站iconverticons。用我們的icns文件替換項(xiàng)目下的
Terminal.icns
阿纤,同時(shí)修改項(xiàng)目配置: -
編譯
完成自定義的配置后句灌,編譯項(xiàng)目(Cmd + Shift + B)。
編譯成功后欠拾,得到
uplink.app
文件胰锌,右擊進(jìn)入其Finder中位置。雙擊運(yùn)行清蚀,彈出通知欄如下匕荸,已經(jīng)滿足我們的需求:將該app復(fù)制到
node-notifier
的vendor目錄下。 -
修改引用js
完成以上步驟枷邪,發(fā)現(xiàn)Electron調(diào)起的依然是之前的通知欄榛搔,并沒(méi)有出現(xiàn)我們重編譯的效果。分析源碼后东揣,我們還需要修改·node-notifier·的源碼践惑,讓其默認(rèn)調(diào)用我們新編譯的app。
node-notifier/notifiers/notificationcenter
var utils = require('../lib/utils'); var Growl = require('./growl'); var path = require('path'); var notifier = path.join( __dirname, // '../vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier' '../vendor/uplink.app/Contents/MacOS/uplink' );
以上嘶卧。