這三個操作系統(tǒng)都為應(yīng)用程序向用戶發(fā)送通知提供了手段。 在主進程和渲染進程中,顯示通知的技術(shù)不同的。
對于渲染進程,Electron 方便地允許開發(fā)者使用 HTML5 通知 API 發(fā)送通知,然后使用當(dāng)前運行中的系統(tǒng)的原生通知 API 來進行顯示。
要在主進程中顯示通知,您需要使用 Notification 模塊。
從 快速入門 示例的應(yīng)用程序開始,將以下行添加到 index.html
文件:
<script src="renderer.js"></script>
并添加 renderer.js
文件:
main.js | index.html | renderer.js |
|
|
|
DOCS/FIDDLES/FEATURES/NOTIFICATIONS/RENDERER (22.0.3)
啟動 Electron 應(yīng)用程序后,您應(yīng)該能看到通知:
此外,如果您點擊通知,DOM將更新以顯示“Notification clicked!”
從 快速入門 中的應(yīng)用開始,將以下內(nèi)容更新到 main.js
。
main.js | index.html |
|
|
DOCS/FIDDLES/FEATURES/NOTIFICATIONS/MAIN (22.0.3)
啟動 Electron 應(yīng)用程序后,您應(yīng)該能看到系統(tǒng)通知:
雖然操作系統(tǒng)的代碼和用戶體驗相似,但依然存在微妙的差異。
node_modules\electron\dist\electron.exe
添加到您的開始菜單也可以解決問題。
導(dǎo)航到資源管理器中的文件,右鍵單擊并選擇 “固定到開始菜單”。 然后您需要添加 app.setAppUserModelId(process.execPath)
到主進程才能看到通知。Electron嘗試將應(yīng)用程序用戶模型 ID 的相關(guān)工作自動化。 Electron在和安裝和更新框架 Squirrel 協(xié)同使用的時候,快捷方式將被自動正確的配置好。 更棒的是,Electron 會自動檢測 Squirrel 的存在,并且使用正確的值來自動調(diào)用app.setAppUserModelId()
。
在開發(fā)的過程中, 你可能需要自己調(diào)用app.setAppUserModelld()
此外,在Windows 8中,通知正文的最大長度為250個字符,Windows團隊建議將通知保留為200個字符。 然而,Windows 10中已經(jīng)刪除了這個限制,但是Windows團隊要求開發(fā)人員合理使用。 嘗試將大量文本發(fā)送到API(數(shù)千個字符) 可能會導(dǎo)致不穩(wěn)定。
Windows 的更高版本允許高級通知,自定義模板,圖像和其他靈活元素。 要發(fā)送這些通知(來自主進程或渲染器進程),請使用用戶區(qū)模塊 electron-windows-notifications 來用原生節(jié)點附件發(fā)送 ToastNotification
和 TileNotification
對象。
當(dāng)包括按鈕在內(nèi)的通知使用 electron-windows-notifications
時,處理回復(fù)需要使用 electron-windows-interactive-notifications
幫助注冊所需的
COM 組件并調(diào)用您的 Electron 應(yīng)用程序和輸入的用戶數(shù)據(jù)。
如果要檢測是否允許發(fā)送通知,請使用 electron-notification-state 模塊。
這樣,您可以提前確定 Windows 是否會將通知忽略。
MacOS上的通知是最直接的,但你應(yīng)該注意蘋果關(guān)于通知的人機接口指南(Apple's Human Interface guidelines regarding notifications).
請注意,通知的大小限制為256個字節(jié),如果超過該限制,則會被截斷。
要檢測是否允許發(fā)送通知,請使用用戶區(qū)模塊 electron-notification-state。
這樣可以提前檢測是否顯示通知。
通知是通過libnotify
發(fā)送的,libnotify可以在任何實現(xiàn)了桌面通知規(guī)范(Desktop Notifications Specification)的桌面環(huán)境中發(fā)送通知,包括Cinnamon、Enlightenment、Unity、GNOME、KDE
更多建議: