Electron中如何获取BrowserWindow实例?

electron中如何获取browserwindow实例?

Electron 中 JavaScript 获取 BrowserWindow 实例的方法

在 Electron 应用中,您可以通过预加载脚本 (preload.js) 访问 BrowserWindow 实例。这对于调用窗口相关的 API(例如最大化、最小化或关闭窗口)非常有用。

首先,在创建 BrowserWindow 实例时,将预加载脚本指定为 webPreferences 选项的一部分:

const { BrowserWindow } = require('electron');const path = require('path');const win = new BrowserWindow({  width: 800,  height: 600,  webPreferences: {    preload: path.join(__dirname, 'preload.js'),  },});

接下来,在预加载脚本 (preload.js) 中,使用 window.require() 函数导入主进程模块。这允许访问 BrowserWindow 模块和其他 Electron API:

// preload.jsconst { BrowserWindow } = require('electron');// 获取当前聚焦的 BrowserWindow 实例const currentWindow = BrowserWindow.getFocusedWindow();//  或者,如果需要访问创建窗口的实例,可以在主进程中将实例传递给渲染进程://  (在主进程中)//  win.webContents.on('did-finish-load', () => {//    win.webContents.send('window-instance', win);//  });//  (在渲染进程中)//  const { ipcRenderer } = require('electron');//  ipcRenderer.on('window-instance', (event, windowInstance) => {//    const myWindow = windowInstance;//  });// 使用 currentWindow 实例if (currentWindow) {  //  例如,最大化窗口  currentWindow.maximize();}

通过以上方法,您就可以在渲染进程的 JavaScript 代码中安全地访问和操作 BrowserWindow 实例了。 请注意,getFocusedWindow() 方法返回当前获得焦点的窗口,如果没有窗口获得焦点,则返回 null。 为了确保始终能够访问正确的窗口实例,建议在主进程中将窗口实例通过 IPC 传递给渲染进程,如注释中所示。

以上就是Electron中如何获取BrowserWindow实例?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1502055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月20日 00:06:57
下一篇 2025年12月20日 00:07:12

相关推荐

发表回复

登录后才能评论
关注微信