解决 CEF 76+ 内核默认禁用 Flash 插件提示 “右键点击即可运行 Adobe Flash Player”

2023-10-21 15:22:08 浏览数 (2)

CEF 76 内核在编译后即使增加了 ppapi-flash-pathppapi-flash-version 也无法在页面中使用 Flash,在命令行参数中确定两个参数是生效的,如图:

CEF != Chrome,这里无论你怎么点击右键都没有效果,经过一番查询,在 CEF 论坛中找到了可行方案:https://www.magpcss.org/ceforum/viewtopic.php?f=7&t=17068&start=10 经过一番尝试,发现在我们创建主进程(CreateBrowser)的时候将 profile.default_content_setting_values.plugins 设置为 1 就可以了。具体实现代码如下:

代码语言:javascript复制
CefRequestContextSettings rcsettings;
CefString(&rcsettings.cache_path).FromWString(app_data_path);
auto request_content = CefRequestContext::CreateContext(rcsettings, new ClientRequestContextHandler);
CefString error;
CefRefPtr<CefValue> value = CefValue::Create();
value->SetInt(1);
request_content->SetPreference("profile.default_content_setting_values.plugins", value, error);
CefBrowserHost::CreateBrowser(window_info, 
    handler, 
    cached_login_addr ? url : "", 
    browser_settings, 
    nullptr, 
    request_content);

在你的代码中,搜索 CreateBrowser 在创建前,修改 profile.default_content_setting_values.plugins 值即可无需用户交互自动开启 Flash 支持。

0 人点赞