如何在 electron-vue 中将 window 置于前台

How to bring window into foreground in electron-vue

我想在倒计时结束后将主 BrowserWindow 置于前台。在 App.vue 中调用 electron.BrowserWindow.getFocusedWindow().show() 时,出现错误

Uncaught TypeError: Cannot read property 'getFocusedWindow' of undefined

electron 正在通过 const electron = window.require("electron");App.vue

中导入

为了避免在渲染器进程上一起做这部分,同时以更干净的方式做,你可以尝试将调用 getFocusedWindow().show() 移动到电子端。 通过这样做:

App.vue

 let ipcRenderer = window.require("electron").ipcRenderer
 ipcRenderer.send("bring-to-foreground");

electron.js

ipcMain.on("bring-to-foreground", (e) => {
  electron.BrowserWindow.getFocusedWindow().show();
}

我还认为您应该使用 keep your mainwindow,这样您就不会使用 getFocusedWindow,因为根据文档,如果 window 未获得焦点,它可能 return null首先。像这样:

let mainWindow;
const createWindow = () => {
    mainWindow = new BrowserWindow({...})
    //rest of the function goes here
}

所以你可以简单地做:

mainwindow.show()