首页 > 解决方案 > 如何将子电子 BrowserWindow 显示为单独的任务栏图标?

问题描述

我有两个窗口的测试电子项目。现在窗口在任务栏中分组(参见屏幕截图上的实际部分)。我希望每个窗口都位于任务栏中的单独图标中(请参阅屏幕截图上的预期部分)。我可以以编程方式执行此操作吗?

我在 Windows(Windows 10)上试过这个。没试过MAC。我希望它可以在 Windows 和 Mac 上运行。

const {app, BrowserWindow} = require('electron')

let mainWindow

function createWindow () {
  mainWindow = new BrowserWindow({width: 800,height: 600})
  mainWindow.loadFile('index.html')
  var otherWindow = new BrowserWindow({width: 400,height: 300})
  otherWindow.loadFile('otherWindow.html')

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}
app.on('ready', createWindow)

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

app.on('activate', function () {
  if (mainWindow === null) {
    createWindow()
  }
})

看图

标签: electrontaskbarchildwindow

解决方案


这应该有助于:

win.setAppDetails({
  appId: "MySecondWindowID"
});

Windows 在任务栏中对窗口图标进行分组,如果它们具有相同的System.AppUserModel.ID,您可以使用win.setAppDetails(options)Electron APIappId为每个窗口设置不同的 's。


推荐阅读