目前最新的 Electron 正式版本是 13.x.x,這次 Electron 本身提供的新能力比較少,但 Node 升級到了 14.16.0,並且 v8 升級到了 9.1。本文主要介紹electron13版本使用remote模塊實現渲染進程讀取主進程變量的方法。
Electron13正式禁用了Remote模塊,使用一個新的包 @electron/remote 來替代。@electron/remote 是Electron內置remote模塊的替代方案,它將JavaScript對象從主進程連接到渲染器進程,方便我們在渲染器進程中訪問主進程的對象。直接按照這個包的說明使用會報錯,正確的使用方式如下:
安裝@electron/remote
項目根目錄,執行如下命令
npm install --save @electron/remote
主進程引入並初始化,然后聲明全局變量
// 初始化
require('@electron/remote/main').initialize()
//全局變量
global.shareObject = {
isDev: isDev,
currentVersion: currentVersion,
};
渲染進程獲取數據
// 獲取主進程全局變量
const shareObject = window.require('@electron/remote').getGlobal("shareObject")
const isDev = shareObject.isDev
const currentVersion = shareObject.currentVersion;
// 獲取主進程窗口
const { BrowserWindow } = window.require('@electron/remote')
//獲取主進程app
const app = window.require('@electron/remote').app
const version = app.getVersion();
注意@electron/remote包有坑,不是非常完善,其中之一就是必須使用window.require引入,不能直接使用require,否則會報錯
其他
其他api可參考@electron/remote