gpt4 book ai didi

javascript - Electron :在BrowserWindow和呈现的URL之间进行通信(nodeIntegration:false)

转载 作者:行者123 更新时间:2023-12-03 12:39:57 24 4
gpt4 key购买 nike

在博客发布后的 repo 之后,我花了大约一个小时来阅读要点,但似乎无法弄清楚该如何做。

我有一个BrowserWindow实例,它使用nodeIntegration: false加载一个URL(由我控制)。

在主要过程中,我想与呈现的URL进行通信。我对preload脚本,BrowserWindow.sendexecuteJavascript范式感到困惑。

我要发送的数据非常大(例如,文件上传介于50kb和10mb之间)。

最好的方法是什么?您可能知道的任何示例/教程都将有所帮助。谢谢!

最佳答案

main.js

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

const window = new BrowserWindow({
minWidth: 1200,
minHeight: 700,
autoHideMenuBar: true,
resizable: true,
show: false,
scrollBounce: true,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
}
})
window.webContents.loadURL('https://xxx.xxx.com') // load your web page
ipcMain.on('ping', (event, msg) => {
console.log(msg) // msg from web page
window.webContents.send('pong', 'hi web page') // send to web page
})

preload.js

const { ipcRenderer } = require('electron');
function init() {
// add global variables to your web page
window.isElectron = true
window.ipcRenderer = ipcRenderer
}

init();

您的网页

<script>
if (window.isElectron) {
window.ipcRenderer.send('ping', 'hello main')
window.ipcRenderer.on('pong', (event, msg) => console.log(msg))
}
</script>

关于javascript - Electron :在BrowserWindow和呈现的URL之间进行通信(nodeIntegration:false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62824682/

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