Electron Tray 模塊

2019-08-14 19:21 更新

用一個(gè) Tray 來(lái)表示一個(gè)圖標(biāo),這個(gè)圖標(biāo)處于正在運(yùn)行的系統(tǒng)的通知區(qū) ,通常被添加到一個(gè) context menu 上.

const electron = require('electron');
const app = electron.app;
const Menu = electron.Menu;
const Tray = electron.Tray;

var appIcon = null;
app.on('ready', function(){
  appIcon = new Tray('/path/to/my/icon');
  var contextMenu = Menu.buildFromTemplate([
    { label: 'Item1', type: 'radio' },
    { label: 'Item2', type: 'radio' },
    { label: 'Item3', type: 'radio', checked: true },
    { label: 'Item4', type: 'radio' }
  ]);
  appIcon.setToolTip('This is my application.');
  appIcon.setContextMenu(contextMenu);
});

平臺(tái)限制:

  • 在 Linux, 如果支持應(yīng)用指示器則使用它,否則使用 GtkStatusIcon 代替.
  • 在 Linux ,配置了只有有了應(yīng)用指示器的支持, 你必須安裝 libappindicator1 來(lái)讓 tray icon 執(zhí)行.
  • 應(yīng)用指示器只有在它擁有 context menu 時(shí)才會(huì)顯示.
  • 當(dāng)在linux 上使用了應(yīng)用指示器,將忽略點(diǎn)擊事件.
  • 在 Linux,為了讓單獨(dú)的 MenuItem 起效,需要再次調(diào)用 setContextMenu .例如:
contextMenu.items[2].checked = false;
appIcon.setContextMenu(contextMenu);

如果想在所有平臺(tái)保持完全相同的行為,不應(yīng)該依賴點(diǎn)擊事件,而是一直將一個(gè) context menu 添加到 tray icon.

Class: Tray

Tray 是一個(gè) 事件發(fā)出者.

new Tray(image)

創(chuàng)建一個(gè)與 image 相關(guān)的 icon.

事件

Tray 模塊可發(fā)出下列事件:

注意: 一些事件只能在特定的os中運(yùn)行,已經(jīng)標(biāo)明.

Event: 'click'

  • event Event
    • altKey Boolean
    • shiftKey Boolean
    • ctrlKey Boolean
    • metaKey Boolean
  • bounds Object - tray icon 的 bounds.
    • x Integer
    • y Integer
    • width Integer
    • height Integer

當(dāng)tray icon被點(diǎn)擊的時(shí)候發(fā)出事件.

注意: bounds 只在 OS X 和 Windows 上起效.

Event: 'right-click' OS X Windows

  • event Event
    • altKey Boolean
    • shiftKey Boolean
    • ctrlKey Boolean
    • metaKey Boolean
  • bounds Object - tray icon 的 bounds.
    • x Integer
    • y Integer
    • width Integer
    • height Integer

當(dāng)tray icon被鼠標(biāo)右鍵點(diǎn)擊的時(shí)候發(fā)出事件.

Event: 'double-click' OS X Windows

  • event Event
    • altKey Boolean
    • shiftKey Boolean
    • ctrlKey Boolean
    • metaKey Boolean
  • bounds Object - tray icon 的 bounds.
    • x Integer
    • y Integer
    • width Integer
    • height Integer

當(dāng)tray icon被雙擊的時(shí)候發(fā)出事件.

Event: 'balloon-show' Windows

當(dāng)tray 氣泡顯示的時(shí)候發(fā)出事件.

Event: 'balloon-click' Windows

當(dāng)tray 氣泡被點(diǎn)擊的時(shí)候發(fā)出事件.

Event: 'balloon-closed' Windows

當(dāng)tray 氣泡關(guān)閉的時(shí)候發(fā)出事件,因?yàn)槌瑫r(shí)或人為關(guān)閉.

Event: 'drop' OS X

當(dāng)tray icon上的任何可拖動(dòng)項(xiàng)被刪除的時(shí)候發(fā)出事件.

Event: 'drop-files' OS X

  • event
  • files Array - 已刪除文件的路徑.

當(dāng)tray icon上的可拖動(dòng)文件被刪除的時(shí)候發(fā)出事件.

Event: 'drag-enter' OS X

當(dāng)一個(gè)拖動(dòng)操作進(jìn)入tray icon的時(shí)候發(fā)出事件.

Event: 'drag-leave' OS X

當(dāng)一個(gè)拖動(dòng)操作離開(kāi)tray icon的時(shí)候發(fā)出事件. Emitted when a drag operation exits the tray icon.

Event: 'drag-end' OS X

當(dāng)一個(gè)拖動(dòng)操作在tray icon上或其它地方停止拖動(dòng)的時(shí)候發(fā)出事件.

方法

Tray 模塊有以下方法:

Note: 一些方法只能在特定的os中運(yùn)行,已經(jīng)標(biāo)明.

Tray.destroy()

立刻刪除 tray icon.

Tray.setImage(image)

 image 與 tray icon 關(guān)聯(lián)起來(lái).

Tray.setPressedImage(image) OS X

當(dāng)在 OS X 上按壓 tray icon 的時(shí)候, 讓 image 與 tray icon 關(guān)聯(lián)起來(lái).

Tray.setToolTip(toolTip)

  • toolTip String

為 tray icon 設(shè)置 hover text.

Tray.setTitle(title) OS X

  • title String

在狀態(tài)欄沿著 tray icon 設(shè)置標(biāo)題.

Tray.setHighlightMode(highlight) OS X

  • highlight Boolean

當(dāng) tray icon 被點(diǎn)擊的時(shí)候,是否設(shè)置它的背景色變?yōu)楦吡?blue).默認(rèn)為 true.

Tray.displayBalloon(options) Windows

  • options Object

展示一個(gè) tray balloon.

Tray.popUpContextMenu([menu, position]) OS X Windows

  • menu Menu (optional)
  • position Object (可選) - 上托位置.
    • x Integer
    • y Integer

從 tray icon 上托出 context menu . 當(dāng)劃過(guò) menu 的時(shí)候, menu 顯示,代替 tray 的 context menu .

position 只在 windows 上可用,默認(rèn)為 (0, 0) .

Tray.setContextMenu(menu)

  • menu Menu

為這個(gè) icon 設(shè)置 context menu .

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)