gpt4 book ai didi

javascript - Electron BrowserView 未捕获鼠标事件

转载 作者:行者123 更新时间:2023-12-01 01:41:00 45 4
gpt4 key购买 nike

我有一个基于 Electron 的浏览器,例如需要渲染客户端应用程序的应用程序。我很想使用 Electron 的 webivew 来渲染我的应用程序,但不推荐使用它们,并且默认情况下也禁用它们。此外,由于 webviews 背后的 chromiums 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);
});
});

我也查看了 Electron 的 github 问题和官方文档,但找不到任何东西。有没有人找到一种从 BrowserView 内部捕获鼠标事件的方法?任何帮助将不胜感激。

最佳答案

通过使用 preload webPreferences for browserview 你可以使用 ipcRenderer preload.js 脚本

document.addEventListener('click', (event) => {
ipcRenderer.send('something', event);
});

在主 Electron js 中,您必须使用 preload 并调用 ipc main 来捕获鼠标数据
let view = new BrowserView({
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
}
});

ipcMain.on('something', function (event, arg) {
// your code here
})

关于javascript - Electron BrowserView 未捕获鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57260234/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com