登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [CLQ工作室CEF项目]之CEF超详细接口使用手册     [回主站]     [分站链接]
标题
[CLQ工作室CEF项目]之CEF超详细接口使用手册
clq
2019-12-04 17:53:50 发表 编辑


[图片]

问题6:如何设置代理?及 dcef3 下为何最好是禁用代理?
这个问题的处理其实和问题3一样,加入命令行参数即可。对于 decf3 来说则有一个很严重的问题:在默认的 win7 系统中代理是设置为自动的,这对于 win7 自带的 ie8 来说几乎没有什么影响,而对于 dec3 加 cef2623 的组合来说却会导致网络访问异常的缓慢。原因很可能是 cef2623 版本对 win7 自动设置的处理有问题,和 decf3 的关系应该不大。
所以我们用 cef2623 的时候最好是禁用掉代理。代码如下:


procedure AppendCefCmdline_v1(const processType: ustring; const cmd: ICefCommandLine);
begin
cmd.AppendSwitchWithValue('proxy-server','http://218.189.26.20:8080');//设置http代理服务器
cmd.AppendSwitchWithValue('proxy-server','https://218.189.26.20:8082');//设置https代理服务器
cmd.AppendSwitchWithValue('proxy-server','ftp://218.189.26.20:21');//设置ftp代理服务器
cmd.AppendSwitchWithValue('proxy-server','socks://202.116.0.188:3128');//设置SOCKS代理服务器
cmd.AppendSwitchWithValue('proxy-server','sock4://202.116.0.188:1080');//设置sock4代理服务器
cmd.AppendSwitchWithValue('proxy-server','sock5://202.116.0.188:1081');//设置sock5代理服务器
//cmd.AppendSwitchWithValue('proxy-server','direct://')//所有连接不使用代理
//cmd.AppendSwitchWithValue('proxy-server','https=127.0.0.1:80;http=socks4://bnwin.com:1080')//同时设置https和sock4代理服务器
cmd.AppendSwitchWithValue('proxy-bypass-list','127.*,192.168.*,10.10.*,193.9.162.*');//不使用代理服务器的地址
//cmd.AppendSwitch('--no-proxy-server');//禁止代理服务器
//cmd.AppendSwitch('--proxy-auto-detect');//自动检测代理配置
//cmd.AppendSwitchWithValue('proxy-pac-url','http://www.bnwinn.com/proxy.pac')//代理使用指定URL中的PAC文件
//cmd.AppendSwitch('--winhttp-proxy-resolver');//代理在IE中运行正常,但在chrome中失败,可以添加此flag
end;

procedure AppendCefCmdline(const processType: ustring; const cmd: ICefCommandLine);
begin

//cmd.AppendSwitchWithValue('proxy-server','direct://')//所有连接不使用代理
//cmd.AppendSwitchWithValue('proxy-server','https=127.0.0.1:80;http=socks4://bnwin.com:1080')//同时设置https和sock4代理服务器
// cmd.AppendSwitchWithValue('proxy-bypass-list','127.*,192.168.*,10.10.*,193.9.162.*');//不使用代理服务器的地址
cmd.AppendSwitch('--no-proxy-server');//禁止代理服务器
//cmd.AppendSwitch('--proxy-auto-detect');//自动检测代理配置
//cmd.AppendSwitchWithValue('proxy-pac-url','http://www.bnwinn.com/proxy.pac')//代理使用指定URL中的PAC文件
//cmd.AppendSwitch('--winhttp-proxy-resolver');//代理在IE中运行正常,但在chrome中失败,可以添加此flag
end;

begin
//CefSingleProcess := False; //开这个的话异常太多了

CefOnBeforeCommandLineProcessing := AppendCefCmdline; //指定dcef启动命令行//禁用代理,因为在默认 win7 下的自动代理检测会非常慢,特别是第一次连接时
//而这种自动代理对 win7 自带的 ie8 则影响不大,估计是 cef2623 的问题 - 和 decef3 自身应该没有多大关系

--------------------------------------------------------
参考

https://www.cnblogs.com/delphi-xe5/articles/11058005.html
http://www.bnwin.com/2017/12/30/367.html






clq
2020-03-06 18:39:53 发表 编辑

问题7:如何在问题1中弹出文件另存为的对话框?

在问题1中的图片保存漏掉了一个问题,就是默认的 2623 版本中没有弹出选择下载后的文件路径文件名的对话框,这是需要再重写
OnBeforeDownload 事件,示例代码如下。

//1.3 对于 cef2623 版本来说还要在 BeforeDownload 事件中写明弹出下载本地文件的选择对话框//不设置的话应该是会下载到某个默认的下载路径吧
procedure CEF_BeforeDownload(Sender: TObject;
const browser: ICefBrowser; const downloadItem: ICefDownloadItem;
const suggestedName: ustring; const callback: ICefBeforeDownloadCallback);
begin
////callback.Cont(ExtractFilePath(ParamStr(0)) + suggestedName, True); //clq 2019 下载的默认路径 第2 个参数应该是是否弹出选择对话框
//callback.Cont(ExtractFilePath(ParamStr(0)) + suggestedName, False); //clq 2019 下载的默认路径 第2 个参数应该是是否弹出选择对话框
//那最后产生的文件名是什么呢?

//callback.Cont(GetLastSavePath() + suggestedName, True);
//参考 http://www.freesion.com/article/903186554/ 这里其实是 callback->Continue("", true); 的意思
//对于 cef2623 来说,默认情况下不重载这个事件的话是不会弹出下载对话框的
callback.Cont('', True);

end;

clq
2020-07-09 15:57:57 发表 编辑

问题9:cef2623 版本乱码的原因之一,不支持 https-equiv

<meta https-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

把前者替换为后者就没有乱码了。但这对于某些在线网站显然不可行。应该想办法设置 cef 的默认字符集。


clq
2020-07-09 16:26:10 发表 编辑

问题10:dcef3 无法直接修改 CefSettings 怎么办?

答:
//----
//2020
//CefSingleProcess := False; //开这个的话异常太多了

//const char* loc = "zh-CN";
//CefString(&cSettings.locale).FromASCII(loc);
//cef_string_from_ascii(loc, strlen(loc), &cSettings.locale);
//dcef3 无法直接修改 cef 的 CefSettings ,但有一些可以用间接通过全局变量实现
CefLocale := 'zh-CN'; //界面字符集
//CefCache := 'cache';


总数:14 页次:2/2 首页 << 上一页 尾页  
总数:14 页次:2/2 首页 << 上一页 尾页  


所在合集/目录
浏览器内核 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1