preload 属性需要使用 file: 协议。

由于 electron 和 webpack 的工作方式,在 DOM 中使用 Renderer 进程中的 preload 属性是一场噩梦。

诀窍是从主进程开始。

在 src/main/main.ts 中:

app.on('web-contents-created', (_event, contents) => {
  contents.on('will-attach-webview', (_wawevent, webPreferences, _params) => {
    webPreferences.preloadURL = `file://${__dirname}/webview-preload.js`;
  });
});

进入全屏模式 退出全屏模式

在 src/main/webview-preload.js 中:

document.addEventListener(
  'DOMContentLoaded',
  () => {
    // YOUR CODE HERE
  },
  false
);

进入全屏模式 退出全屏模式

如果本文对您有所帮助,请查看我们使用 Electron、React、TypeScript 和 Redux 构建的浏览器:https://github.com/danielfebrero/bonb-browser

Logo

React社区为您提供最前沿的新闻资讯和知识内容

更多推荐