本章节介绍CefSetting各种设置
CefExample.Init(osr: false, multiThreadedMessageLoop: multiThreadedMessageLoop, browserProcessHandler: browserProcessHandler);
这个方法就是Cef的初始化设置。里面有一些设置是已经注释的,每项设置我也没有详细研究,感兴趣的朋友可以自己看看代码和注释。这里我只说说几个比较重要的设置。
//设置语言环境是中文环境
settings.Locale = "zh_CN";
//远程调试端口
settings.RemoteDebuggingPort = 8088;
//浏览器缓存的路径,可以设置到某个磁盘,默认设置是在软件运行目录下面。
settings.CachePath = "cache";
//让浏览器的消息循环在一个单独的线程中执行,建议设置成true,具体含义看看浏览器消息处理。
settings.MultiThreadedMessageLoop = true;
//这个我理解不到,只有看源码的注释;
settings.ExternalMessagePump = false;
//获取本机internet代理设置。
var proxy = ProxyConfig.GetProxyInformation();
switch (proxy.AccessType)
{
case InternetOpenType.Direct:
{
//Don't use a proxy server, always make direct connections.
settings.CefCommandLineArgs.Add("no-proxy-server", "1");
break;
}
case InternetOpenType.Proxy:
{
settings.CefCommandLineArgs.Add("proxy-server", proxy.ProxyAddress);
break;
}
case InternetOpenType.PreConfig:
{
settings.CefCommandLineArgs.Add("proxy-auto-detect", "1");
break;
}
}
//直接注释掉,因为这个应用程序已经包含在工程目录下面
//settings.BrowserSubprocessPath = "..\\..\\..\\..\\CefSharp.BrowserSubprocess\\bin\\" + architecture + "\\Debug\\CefSharp.BrowserSubprocess.exe";
//注册custom的域名,程序内部资源访问域名。
//custom://cefsharp/zpy.html这种域名注册,后续注册https和test都是使用这种方式,zpy.html就是我自己加载在项目内的html文件。可以使用这种方式用本地html开发图形界面。模糊B/S程序和C/S程序。
settings.RegisterScheme(new CefCustomScheme
{
SchemeName = CefSharpSchemeHandlerFactory.SchemeName,
SchemeHandlerFactory = new CefSharpSchemeHandlerFactory(),
IsSecure = true //treated with the same security rules as those applied to "https" URLs
//SchemeHandlerFactory = new InMemorySchemeAndResourceHandlerFactory()
});
//在设置最后使用Cef.AddCrossOriginWhitelistEntry(BaseUrl, "https", "cefsharp.com", false);这些域名添加到白名单。
做完这些以后并且设置好ChromiumWebBrowser后就可以使用Application.Run(browser);启动浏览器。