以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  CEF浏览器内核设置问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93726)

--  作者:天若千颖
--  发布时间:2016/12/5 17:28:00
--  CEF浏览器内核设置问题
Foxtable内置的Webbrowser版本太低了,很多功能都无法使用。

CEF内核见:http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90320

试过webkit和CEF内核,发现这两个内核默认情况下都不能继承IE的代理设置,比如说,我在单位访问外网要通过代理,就不能使用这两个内核。


CEF有很多设置可以使用,见:https://github.com/cefsharp/CefSharp/wiki/CefSharp%E4%B8%AD%E6%96%87%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3

语言环境进行设置
var setting = new CefSharp.CefSettings();

// 设置语言
setting.Locale = "zh-CN";

CefSharp.Cef.Initialize(setting, true, false); 以上这段代码一定要在new ChromiumWebBrowser之前调用


比如代理设置,如何把这个代理设置写入Foxtable的窗口中呢?

var settings = new CefSettings();  
settings.CefCommandLineArgs.Add("no-proxy-server", "1");  
settings.CefCommandLineArgs.Add("proxy-server", "ProxyAddress");  
Cef.Initialize(settings, true, true); 


--  作者:有点蓝
--  发布时间:2016/12/5 17:36:00
--  
一般独立的内核都不会管IE的设置的。应该都会提供自己的设置方法。代码改为vb语法试试

Dim settings As new CefSettings() ‘这里的CefSettings可能要用到完整的命名空间
settings.CefCommandLineArgs.Add("no-proxy-server", "1")  
settings.CefCommandLineArgs.Add("proxy-server", "ProxyAddress")
Cef.Initialize(settings, True, True)


--  作者:天若千颖
--  发布时间:2016/12/5 17:50:00
--  
第一句过不了,有问题,那这里的命名空间怎么定义呢?

引用的dll您以前看到过。

http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=90320

就两个dll。

--  作者:有点蓝
--  发布时间:2016/12/5 17:52:00
--  
自己到vs引用这些dll查看完整命名空间

Dim settings As new CefSharp.CefSettings() 


--  作者:天若千颖
--  发布时间:2016/12/5 18:01:00
--  
好,谢谢,我明天试试。
--  作者:天若千颖
--  发布时间:2016/12/5 21:51:00
--  
 命名类型是:CefSharp.Settings()
如:Dim settings As new CefSharp.Settings()
但是后面有错误提示,说CefCommandLineArgs不是CefSharp.Settings()的成员.
但是在net中确实是这样写的.
参考:http://www.111cn.net/net/171/91733.htm
http://www.cnblogs.com/TianFang/p/4658151.html

Dim wv As new CefSharp.WinForms.WebView()
Dim settings As new CefSharp.Settings()
settings.CefCommandLineArgs.Add("no-proxy-server", "1") 
settings.CefCommandLineArgs.Add("proxy-server", "ProxyAddress")
Cef.Initialize(settings, True, True)
wv.Address = "http://baidu.com"
wv.Parent = e.Form.baseform
wv.Dock = System.Windows.Forms.DockStyle.Fill
Dim pnl As WinForm.Panel = e.Form.Controls("Panel1")
pnl.basecontrol.controls.add(wv)
		


--  作者:有点蓝
--  发布时间:2016/12/5 22:06:00
--  
几个dll是否都引用了。你到vs测试通过在把代码搬过去用
--  作者:有点蓝
--  发布时间:2016/12/6 8:34:00
--  
查了一下,CefCommandLineArgs是wpf版本才有的。winform版本没有这个属性,只有一个AutoDetectProxySettings,可以试试

Dim wv As new CefSharp.WinForms.WebView()
Dim settings As new CefSharp.Settings()
settings.AutoDetectProxySettings = True
CefSharp.CEF.Initialize(settings)
wv.Address = "http://www.baidu.com"
wv.Parent = e.Form.baseform
wv.Dock = System.Windows.Forms.DockStyle.Fill
Dim pnl As WinForm.Panel = e.Form.Controls("Panel1")
pnl.basecontrol.controls.add(wv)

--  作者:天若千颖
--  发布时间:2016/12/6 9:04:00
--  
我也看到这里,多谢蓝版记着这个事情,但是代理还是不能用,提示:Error -137 when loading url http://www.baidu.com/

查了一下,还是代理有问题:https://github.com/cefsharp/CefSharp/issues/153

我继续查找一下哪里设置有问题。

--  作者:天若千颖
--  发布时间:2016/12/6 9:10:00
--  
代理没有起作用,正在查找哪里设置还有问题。
[此贴子已经被作者于2016/12/6 9:15:02编辑过]