學習Electron時,在渲染進程中通過remote打開開發這工具,發現點擊按鈕沒有反應。
const remote = require('electron').remote;
let openDevToolsBtn = document.querySelector("#openDevToolsBtn");
openDevToolsBtn.addEventListener('click', function() {
alert(remote);
remote.getCurrentWindow().webContents.openDevTools();
});
打印remote對象時,發現是 undefined
。
- 問題原因
在網上搜了一下,發現是electron 10下,remote默認關閉,需要手動開啟。
- 解決方案
找到項目中的BrowserWindow
定義部分,手動設置webPreferences
中的enableRemoteModule
為true
即可,添加部分如下:
win = new BrowserWindow({
webPreferences: {
nodeIntegration: true, // 賦予此窗口頁面中的JavaScript訪問Node.js環境的能力
// 在electron 10.0.0之后,remote模塊默認關閉
// 必須手動設置webPreferences中的enableRemoteModule為true之后才能使用
enableRemoteModule: true, // 打開remote模塊
}
});
- 參考資料