问题出现
chrome69版本开始禁用FLASH,cef3 84.4.1 Chromium 84.0.4147.105 如果正常开启FLASH,并且不用点击一点运行插件,就象之前版本一样呢?
CEF4Delphi是在Delphi 10.2 Tokyo上开发和测试的,已经在Delphi 7,Delphi XE和Delphi 10中测试过了。
有关CEF4Delphi的更多信息,请访问: https://www.briskbard.com/index.php?lang=en&pageid=cef
论坛:https://www.briskbard.com/forum
DELPHI代码实现
- 找到flash的dll文件 如在360浏览器中拷出flash文件PepperFlash NativeFlash放在程序目录
- 添加flash文件地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| procedure CreateGlobalCEFApp; begin GlobalCEFApp := TCefApplication.Create; GlobalCEFApp.LogFile := 'debug.log'; GlobalCEFApp.LogSeverity := LOGSEVERITY_DISABLE; GlobalCEFApp.cache := 'User Data'; GlobalCEFApp.UserDataPath := 'User Data'; GlobalCEFApp.LocalesRequired := 'zh-CN'; GlobalCEFApp.Locale := 'zh-CN'; GlobalCEFApp.UserAgent := 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'; GlobalCEFApp.FlashEnabled := true; GlobalCEFApp.AddCustomCommandLine('--ppapi-flash-path', 'PepperFlash\pepflashplayer.dll'); GlobalCEFApp.AddCustomCommandLine('enable-npapi'); GlobalCEFApp.AddCustomCommandLine('load-plugin', 'NativeFlash\NPSWF32.dll'); GlobalCEFApp.AddCustomCommandLine('ssl-version-min','ssl3'); GlobalCEFApp.AddCustomCommandLine('--allow-running-insecure-content'); GlobalCEFApp.EnablePrintPreview := True; end;
|
- chromium启动时添加如下代码
1 2 3
| chromium1.AlwaysAuthorizePlugins := true; chromium1.AllowOutdatedPlugins := true; chromium1.RunAllFlashInAllowMode := true;
|
附加说明
其中flash路径也可以使用dcef4的参数CustomFlashPath,
1
| GlobalCEFApp.CustomFlashPath := ExtractFilePath(Application.ExeName);
|
上面添加的参数,如果你只允许flash,可以去掉其他参数,其中的允许https调用http的js,非常有用,用dcef4打开一个网页,你可以嵌入另一个网站的JS,让这个JS执行!而不分http还是https!当然如果你用dcef4用不到flash,就不打开这些设置了,毕竟不安全!

Google 已宣布将于 2021 年 1 月在 Chromium 88 发布时从 Chromium 中删除Adobe Flash支持,所以你想使用flash就得使用Chromium 88之前的版本,然后按上面的代码启用!