【问题标题】:Electron: How to execute bundled file?电子:如何执行捆绑文件?
【发布时间】:2020-01-21 08:29:10
【问题描述】:

TL;DR: 我有一个用 Browserify 创建的捆绑 JS 文件 bundle.js。我想使用executeJavaScript 加载这个文件并将内容附加到Electron 中的BrowserView。我该怎么做?

我需要包含的包是 Web3.js。我通过运行将 Web3 与 Browserify 捆绑在一起:

browserify packages/web3/src/index.js -o web3-bundle.js

这是将包包含到BrowserView 中的两种最有希望的方法,但不幸的是,这两种方法都不起作用。

  1. 使用require

我尝试使用require 导入文件。

const Web3 = require('web3-bundle.js');

view.webContents.executeJavaScript(`
  ${Web3};
  console.log(Web3);
`);
  1. 使用fs:
fs.readFile(path.resolve(__dirname, 'web3-bundle.js'), 'utf8', function (err, data) {
  if (err) {
    console.error(err);
    return;
  }
  console.log('data', data)
view.webContents.executeJavaScript(`
  ${data};
  console.log(Web3);
`)
});

如何将捆绑的文件附加到 Electron 中的 BrowserView

【问题讨论】:

    标签: javascript electron filesystems browserify fs


    【解决方案1】:

    您可以将脚本预加载到BrowserView

    const view = new BrowserView( { webPreferences: { preload : 'absloute/path/to/web3-bundle.js' } } )
    

    【讨论】:

    • 不幸的是,这不起作用,因为出于安全原因,我必须将contextIsolation 设置为true,这就是为什么我还必须使用executeJavaScript 以某种方式加载它。跨度>
    猜你喜欢
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多