Electron Dock

2023-02-16 17:15 更新

Electron有API來(lái)配置macOS Dock中的應(yīng)用程序圖標(biāo)。 可以使用 API 來(lái)創(chuàng)建一個(gè)自定義的 Dock 菜單項(xiàng),這個(gè) API 是 macOS 獨(dú)占的,但是 Electron 也會(huì)默認(rèn)使用應(yīng)用的 Dock 圖標(biāo)來(lái)實(shí)現(xiàn)一些可以跨平臺(tái)的功能,例如最近文件應(yīng)用程序進(jìn)度

一個(gè)自定義的Dock項(xiàng)也普遍用于為那些用戶不愿意為之打開整個(gè)應(yīng)用窗口的任務(wù)添加快捷方式。

Terminal.app 的 Dock 菜單:


要設(shè)置您的自定義 dock 菜單,您需要使用 app.dock.setmenu API,它僅在 macOS 上可用。

 main.js index.html 
const { app, BrowserWindow, Menu } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
  })

  win.loadFile('index.html')
}

const dockMenu = Menu.buildFromTemplate([
  {
    label: 'New Window',
    click () { console.log('New Window') }
  }, {
    label: 'New Window with Settings',
    submenu: [
      { label: 'Basic' },
      { label: 'Pro' }
    ]
  },
  { label: 'New Command...' }
])

app.whenReady().then(() => {
  if (process.platform === 'darwin') {
    app.dock.setMenu(dockMenu)
  }
}).then(createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
    <h1>Hello World!</h1>
    <p>Right click the dock icon to see the custom menu options.</p>
</body>
</html>

DOCS/FIDDLES/FEATURES/MACOS-DOCK-MENU (22.0.2)

Open in Fiddle

啟動(dòng) Electron 應(yīng)用程序后,右鍵點(diǎn)擊應(yīng)用程序圖標(biāo)。 您應(yīng)該可以看到您剛剛設(shè)置的自定義菜單:



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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)