Electron 使用Pepper Flash插件

时间:2021-12-29 08:00:20

Electron 中支持 Pepper Flash 插件的使用。想要在 Electron 里面使用 Pepper Flash 插件,我们需要手动设置 Pepper Flash 的路径,并且在应用程序中启用 Pepper Flash。

保留一份 Flash 插件的副本

 

在 macOS 和 Linux 上,我们可以在 Chrome 浏览器的 chrome://plugins 页面上找到 Pepper Flash 的插件信息。插件的路径和版本会对 Election 对其的支持有帮助。你也可以把插件复制到另一个路径以保留一份副本。

Electron 使用Pepper Flash插件

添加插件在 Electron 里的开关

 

我们可以直接在命令行中用 --ppapi-flash-path 和 ppapi-flash-version 或者在 app 的准备事件前调用

app.commandLine.appendSwitch 这个方法。同时添加 browser-window 的插件开关。例如:

  1. const { app, BrowserWindow } = require('electron'
  2. const path = require('path'
  3. // 指定flash路径,假定它与main.js放在同一目录中。 
  4. let pluginName 
  5. switch (process.platform) { 
  6.   case 'win32'
  7.     pluginName = 'pepflashplayer.dll' 
  8.     break 
  9.   case 'darwin'
  10.     pluginName = 'PepperFlashPlayer.plugin' 
  11.     break 
  12.   case 'linux'
  13.     pluginName = 'libpepflashplayer.so' 
  14.     break 
  15. app.commandLine.appendSwitch('ppapi-flash-path', path.join(__dirname, pluginName)) 
  16. // 可选:指定flash的版本,例如v17.0.0.169 
  17. app.commandLine.appendSwitch('ppapi-flash-version''17.0.0.169'
  18. app.on('ready', () => { 
  19.   let win = new BrowserWindow({ 
  20.     width: 800, 
  21.     height: 600, 
  22.     webPreferences: { 
  23.       plugins: true 
  24.     } 
  25.   }) 
  26.   win.loadURL(`file://${__dirname}/index.html`) 
  27.   // ... 
  28. }) 

或者也可以尝试加载系统安装的 Pepper Flash 插件,而不是装运 插件,其路径可以通过调用 app.getPath('pepperFlashSystemPlugin') 获取。

使用webview标签启用插件

 

在<webview>标签里添加 plugins 属性。例如下面所示:

<webview src="http://www.adobe.com/software/flash/about/" plugins></webview> 

故障排查

 

我们可以通过在控制台打印 navigator.plugins 来检查 Pepper Flash 插件是否加载 。

Pepper Flash 插件的操作系统必须和 Electron 的操作系统匹配。在 Windows 中, 一个常见的错误是对 64 位版本的 Electron 使用 32bit 版本的 Flash 插件。

在 Windows 中,传递给 --ppapi-flash-path 的路径必须使用 `` 作为路径分隔符,使用 POSIX-style 的路径将无法工作。

对于一些操作,例如使用 RTMP 的流媒体,有必要向播放器的 .swf 文件授予更多的权限。 实现这一点的一种方式是使用 nw-flash-trust。

原文地址:https://www.toutiao.com/a6968812800462406182/