在 Electron 和 Vue 中加载预加载脚本

Jan*_*sek 5 vue.js electron electron-builder vue-cli-3

我正在使用 Vue CLI 3 并vue-cli-plugin-electron-builder打包我的 Vue Electron 应用程序,但我无法获取用于电子工作的 preload.js 脚本。

主窗口

win = new BrowserWindow({
  width: 800,
  height: 600
  webPreferences: {
    nodeIntegration: false,
    preload: path.join(__dirname, "/../src/preload.js") // works but window.electron.dialog in undefined
  }
});
Run Code Online (Sandbox Code Playgroud)

预加载.js

const { dialog } = require("electron");

window.electron = {};
window.electron.dialog = dialog;
Run Code Online (Sandbox Code Playgroud)

我的 Vue 组件中始终未定义window.electron.dialog- 导入显然不起作用。请注意,window.electron定义正确。我肯定错过了什么。

Jan*_*sek 0

解决方案比预期的更简单。导入在事件中起作用window.onload

window.onload = () => {
  const { dialog } = require("electron").remote;

  window.electron = {};
  window.electron.dialog = dialog; // now set properly
};
Run Code Online (Sandbox Code Playgroud)