在生产中将 PepperFlash 包含在电子中不起作用

Including PepperFlash in electron not working when built in production

我有一个 Electron 应用程序需要加载基于 Flash 的网站,我在 windows 中包含了 PepperFlash DLL,当我 运行 解压时它可以工作,但是当我 运行 packed 插件不起作用。

我已确保该文件存在于构建时查看的路径中

let pluginPath = process.env.ELECTRON_START_URL ?
    path.join(__dirname, pluginName):
    __dirname.replace('app.asar', 'app.asar.unpacked') + pluginName;

如果我在构建时 console.log 插件路径,它会给我正确的区域。

C:\Users\Evan\AppData\Local\Temp\nsl129A.tmp\app\resources\app.asar.unpacked\buildpepflashplayer.dll

当我正确导航到该区域时它就存在。

我还在 WebPreferences 中包含插件,这在解压后确实有效。

  mainWindow = new BrowserWindow({
      title: 'TST Application',
      icon: path.join(__dirname, 'assets/logo.png'),
      webPreferences: {
          plugins: true,
          webSecurity: false
      },
      show: false
  });

在我的 package.json for electron-builder 我有合适的 asarUnpack}

 "asarUnpack": [
     "build/pepflashplayer.dll"
 ],

但是当我尝试加载 url

    mainWindow.loadURL('http://get.adobe.com/flashplayer/about/');

我得到 无法加载插件。

但是我注意到一件事是前往 http://isflashinstalled.com/ 表明闪存已正确安装。同样,在我的渲染器进程中,如果我 console.log

        console.log(navigator.plugins);

我在插件列表中看到了 flash 插件。

有什么建议吗?谢谢!

原来问题是我在 32 位中打包并使用 64 位 PepperFlash DLL,进行切换后一切正常。