首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Electron.remote未定义

Electron.remote未定义
EN

Stack Overflow用户
提问于 2016-06-17 14:28:15
回答 5查看 53.2K关注 0票数 68

我在使用电子方面有困难。正如您可以看到的标题,当我加载远程模块时,它会帮助它是未定义的。这是条目js的代码:

代码语言:javascript
复制
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/

使用

代码语言:javascript
复制
const { remote } = electron;
const { BrowserWindow } = remote;

let win = new BrowserWindow({width: 800, height: 600});  // error! BrowserWindow is not a constructor blabla

...
remote.getCurrentWindow().focus();

我不知道我错过了什么。任何建议都会很感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-06-18 04:08:47

更新2020,因为这个答案仍然出现在顶部。要使原来的答案在当前版本的电子中工作,您需要在创建主进程中的窗口时设置enableRemoteModule

代码语言:javascript
复制
const myWindow = new BrowserWindow({
    webPreferences: {
        enableRemoteModule: true
    }
}); 

原来的答案:

remote只需要在呈现过程中需要其他模块。在主要过程中,您只需直接从require('electron')获得模块。在本例中,只需添加不必要的remote就可以完成这一任务。

渲染过程:

代码语言:javascript
复制
const { remote } = require('electron');
const { BrowserWindow } = remote;

主要过程:

代码语言:javascript
复制
const { BrowserWindow } = require('electron');
票数 162
EN

Stack Overflow用户

发布于 2020-08-27 09:10:39

在电子10.0.0中,默认情况下remoteModule设置为false。因此,如果要在const {BrowserWindow, dialog } = require('electron').remote;文件中使用JavaScript,则必须在webPreferences中将enableRemoteModule设置为true

代码语言:javascript
复制
const w = new BrowserWindow({
    webPreferences: {
        enableRemoteModule: true
    }
}); 

链接:https://github.com/electron/electron/blob/master/docs/breaking-changes.md#default-changed-enableremotemodule-defaults-to-false

票数 66
EN

Stack Overflow用户

发布于 2021-10-05 15:15:57

远程模块在电子12中被废弃,并将在电子14中被移除。它被@electron/remote模块取代。

代码语言:javascript
复制
// Deprecated in Electron 12:
const { BrowserWindow } = require('electron').remote
代码语言:javascript
复制
// Replace with:
const { BrowserWindow } = require('@electron/remote')

// In the main process:
require('@electron/remote/main').initialize()
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37884130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档