如何解决带有广播频道的电子 - 无法在不透明的来源中创建广播频道
我是 Electron 的新手,有一些代码可以创建一个新窗口。我想让窗口打开一个广播频道,但出现错误:
Failed to construct 'broadcastChannel': Can't create broadcastChannel in an opaque origin
代码如下:
main.ts
...
function createWindow() {
// Create the browser window.
const mainWindow = new browserWindow({
height: 600,width: 800,show: false,webPreferences: {
nodeIntegration: true,preload: path.join(__dirname,'renderer.js'),},});
// and load the index.html of the app.
// mainWindow.loadURL("app://a/static/main.html");
mainWindow.loadFile('../static/main.html');
mainWindow.on('ready-to-show',() => {
mainWindow.webContents.openDevTools();
mainWindow.show();
});
renderer.js
...
window.onload = () => {
const app = <App />;
document.body.appendChild(app);
const daemonChannel = new broadcastChannel('Daemon');
const rendererChannel = new broadcastChannel('Renderer');
daemonChannel.onmessage = (e) => {
document.body.appendChild(<p>{e.data}</p>);
rendererChannel.postMessage(`hello back ${e.data}`);
};
};
这适用于我的 mac 笔记本电脑,但不适用于多台 Windows 开发机器?
解决方法
好的,我明白了,main.html 文件没有正确解析:
mainWindow.loadFile('../static/main.html');
我确保该文件存在并且现在可以使用了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。