我有一个基于 Electron 的浏览器,比如需要渲染客户端应用程序的应用程序。我很想使用电子的 webivew 来呈现我的应用程序,但不推荐使用它们,并且默认情况下也是禁用的。同样由于 webviews 后面的 Chromium OOPIF(进程外 IFrames)架构,它不再可能捕获对我的应用程序至关重要的键盘和鼠标事件。
所以我使用较新的 BrowserView api 并使用它来呈现我的客户端 Web 应用程序。但遗憾的是,我只能使用before-input-event事件捕获键盘事件。
这是我的代码示例。
let mainWindow = null;
app.on('ready', () => {
mainWindow = new BrowserWindow({ show: false });
mainWindow.setBounds({ x: 0, y: 0, width: 800, height: 600 })
mainWindow.once('ready-to-show', () => {
mainWindow.show();
});
let view = new BrowserView()
mainWindow.setBrowserView(view)
view.webContents.loadURL('https://electronjs.org')
view.webContents.on('before-input-event', (event, input) => {
console.log(event, input);
});
});
我查看了电子的 github 问题和官方文档,但找不到任何东西。有没有人找到一种方法来捕获鼠标事件以及从 BrowserView 内部?任何帮助将不胜感激。
慕森王
相关分类