升級到electron10以后的版本remote失效


有個electron-vue項目,通過使用remote來實現主進程和渲染進程之間的值傳遞

// 主進程使用了global.sharedObject來傳遞路徑信息到渲染進程
global.sharedObject = {
  extra: storage.getStoragePath(),
};

// 渲染進程
let remote = require('electron').remote
storage.setStoragePath(remote.getGlobal('sharedObject').extra);
const app = require('electron').remote.app
原本使用的是低版本的electron,一直正常使用,但是升級到electron10.1.2之后,項目中報“getGlobal”未定義:
Uncaught TypeError: Cannot read property 'getGlobal' of undefined

打印remote對象,發現是undefined

解決方案
實際是在electron 10下,remote模塊默認關閉, 必須手動設置webPreferences中的enableRemoteModule為true之后才能使用

找到項目中的BrowserWindow部分,添加如下:

mainWindow = new BrowserWindow({
    webPreferences: {
      nodeIntegration: true,
      // 在electron 10.0.0之后,remote模塊默認關閉
      // 必須手動設置webPreferences中的enableRemoteModule為true之后才能使用
      enableRemoteModule: true, // 這里是關鍵設置
    },
    // 其他設置...
  });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM