gaoshuaixing преди 3 години
родител
ревизия
ffcb16809e
променени са 3 файла, в които са добавени 9 реда и са изтрити 2 реда
  1. 3 1
      electron/config/config.default.js
  2. 5 0
      electron/preload/bridge.js
  3. 1 1
      frontend/src/utils/ipcRenderer.js

+ 3 - 1
electron/config/config.default.js

@@ -1,6 +1,7 @@
 'use strict';
 
 const dayjs = require('dayjs');
+const path = require('path');
 
 /**
  * 默认配置
@@ -52,8 +53,9 @@ module.exports = (appInfo) => {
     minHeight: 650,
     webPreferences: {
       //webSecurity: false,
-      contextIsolation: false, // 设置此项为false后,才可在渲染进程中使用electron api
+      contextIsolation: false, // false->可在渲染进程中使用electronApi,true->需要bridge.js(contextBridge)
       nodeIntegration: true,
+      preload: path.join(appInfo.baseDir, 'preload', 'bridge.js'),
     },
     frame: true,
     show: true,

+ 5 - 0
electron/preload/bridge.js

@@ -0,0 +1,5 @@
+const { contextBridge, ipcRenderer } = require('electron')
+
+contextBridge.exposeInMainWorld('electron', {
+  ipcRenderer: ipcRenderer,
+})

+ 1 - 1
frontend/src/utils/ipcRenderer.js

@@ -1,4 +1,4 @@
-const { ipcRenderer: ipc } = window.require && window.require('electron') || {}
+const { ipcRenderer: ipc } = (window.require && window.require('electron')) || window.electron || {}
 
 /**
  * (将废弃,请使用 $ipcInvoke 代替)异步调用主函数