我在使用电子方面有困难。正如您可以看到的标题,当我加载远程模块时,它会帮助它是未定义的。这是条目js的代码:
const electron = require('electron');
const { app, BrowserWindow, Tray, remote, ipcMain } = electron;
function initApp() { ... }
app.on('ready', () => {
initApp();
console.log(electron); // object, but no remote inside
console.log(electron.remote); // undefined
console.log(remote); // undefined
});我试图在这里跟踪官方文档:http://electron.atom.io/docs/api/remote/
使用
const { remote } = electron;
const { BrowserWindow } = remote;
let win = new BrowserWindow({width: 800, height: 600}); // error! BrowserWindow is not a constructor blabla
...
remote.getCurrentWindow().focus();我不知道我错过了什么。任何建议都会很感激。
发布于 2016-06-18 04:08:47
更新2020,因为这个答案仍然出现在顶部。要使原来的答案在当前版本的电子中工作,您需要在创建主进程中的窗口时设置enableRemoteModule。
const myWindow = new BrowserWindow({
webPreferences: {
enableRemoteModule: true
}
}); 原来的答案:
remote只需要在呈现过程中需要其他模块。在主要过程中,您只需直接从require('electron')获得模块。在本例中,只需添加不必要的remote就可以完成这一任务。
渲染过程:
const { remote } = require('electron');
const { BrowserWindow } = remote;主要过程:
const { BrowserWindow } = require('electron');发布于 2020-08-27 09:10:39
在电子10.0.0中,默认情况下remoteModule设置为false。因此,如果要在const {BrowserWindow, dialog } = require('electron').remote;文件中使用JavaScript,则必须在webPreferences中将enableRemoteModule设置为true。
const w = new BrowserWindow({
webPreferences: {
enableRemoteModule: true
}
}); 发布于 2021-10-05 15:15:57
远程模块在电子12中被废弃,并将在电子14中被移除。它被@electron/remote模块取代。
// Deprecated in Electron 12:
const { BrowserWindow } = require('electron').remote// Replace with:
const { BrowserWindow } = require('@electron/remote')
// In the main process:
require('@electron/remote/main').initialize()https://stackoverflow.com/questions/37884130
复制相似问题