首页 > 解决方案 > 如何在电子的生产版本上运行闪存?

问题描述

我正在使用 React 创建一个电子应用程序。它在开发环境中成功播放 Flash,但在生产环境中无法播放。在我的 electron.js 文件(主文件)中,我添加了一个 if-else 以在电子生成构建时将 dll 定位到不同的文件夹。

在 electron.js 中,我使用这一行在播放 flash 时包含 dll。

switch (process.platform) {
  case 'win32':
    pluginName = 'plugins/pepperflashplugin.dll'
    break
  case 'darwin':
    pluginName = 'plugins/PepperFlashPlayer.plugin'
    break
  case 'linux':
    pluginName = 'plugins/libpepflashplayer.so'
    break
  default:
    break
}
    isDev ? app.commandLine.appendSwitch('ppapi-flash-path', path.join(__dirname, pluginName)) :
      app.commandLine.appendSwitch('ppapi-flash-path', 'resources/extraResources', pluginName);

这是我的 package.json 的构建字段

  "build": {
    "appId": "com.fp.uav",
    "files": [
      "build/",
      "node_modules/**/*"
    ],
    "extraResources": [
      {
        "from": "public/plugins/",
        "to": "extraResources",
        "filter": [
          "**/*"
        ]
      }
    ],
    "win": {
      "icon": "public/assets/UAV.ico"
    }
  }

发生的事情是我构建项目,然后电子构建器使用我构建文件夹中的文件,然后它将生产构建放入 dist。

如果有帮助,这是我的文件夹结构。 在此处输入图像描述

任何帮助表示赞赏。谢谢!

标签: electronelectron-builder

解决方案


我已将此语句添加到我的 main.js 或在本例中为 electron.js

app.commandLine.appendSwitch('no-sandbox');

这是在不同的插件上说明的,但在生产版本在这里说“无法加载插件”时遇到了同样的问题:

https://github.com/Kagami/mpv.js/issues/51


推荐阅读