CefSharp中文帮助文档
目录
1、基础知识
1.1 cefsharp设置默认语言
1.2 cefSharp 服务器运行要求
1.3 cefsharp设置网页接受语言AcceptLanguage
1.4 cef设置userAgent
2、配置管理
2.1、CommandLine配置
3、请求流程处理
3.1 读取网页源代码
3.2 获取页面中的指定文件内容(.jpg,.js等)
3.3 过滤某些页面内容,例如图片或某些文字
3.4 文件进一步获取,获取完整内容
3.5 文件进一步获取,获取完整内容(优化,Content-Length不一致)
4、 Cookie处理
4.1 设置cookie
4.2 读取cookie
5、 Js处理
5.1 基本的同步js操作
5.2 其他Frame操作
6、 资源清理
6.1 浏览器本身处理
6.2 需要关闭浏览器负载程序时操作
7、 扩展功能
8、 常见错误
8.1 下载CefSharp master zip code文件编译报错
8.2 无法创建新的堆栈防护页面8.3 结束浏览器后,CefSharp.BrowserSubprocess.exe进行无法结束9、 GitHub---Wiki(部分内容使用了Google进行翻译)
9.1 如何使用.NET 调用 JavaScript方法?
9.2 如何获取 Javascript 方法返回的结果?
9.3 如何暴露.NET类,提供给Javascript?
9.4 为什么我得到一个错误有关“无法加载文件或程序集 CefSharp.Core.dll ”或它的一个依赖。指定的模块找不到。“当试图运行基于我CefSharp的应用程序?它编译成功,但不运行?它运行我的开发机器上,虽然抛出一个异常,当我把它复制到另一台计算机?
9.5 为什么当我将 ChromiumWebBrowser 添加到我的应用程序时,Visual Studio WPF设计器不起作用?9.6 如何在目标应用程序中包含Visual Studio C ++ 2012/2013可再发行组件?
9.7 如何重写 Javascript 的 window.alert 事件和相似的?
9.8 CefSharp3二进制程序在哪里?
9.9 Windows XP/2003支持?
9.10 当我重新发布使用CefSharp的应用程序时,需要包括什么文件?9.11 构建过程不能复制CEF文件
9.12 为什么 IndexedDB 返回 QuotaExceededError?
9.13 在C#中如何处理Javascript事件?
9.14 如何实现 WinForms 拖放?
10、 参考网址
11、 其他
http://peter.sh/experiments/chromium-command-line-switches/
样例参考:
var settings = new CefSettings();
settings.CefCommandLineArgs.Add("no-proxy-server", "1");
settings.CefCommandLineArgs.Add("proxy-server", "ProxyAddress");
Cef.Initialize(settings, true, true);
https://codeload.github.com/cefsharp/CefSharp/zip/master
错误提示:
var settings = new CefSettings();
settings.CefCommandLineArgs.Add("no-proxy-server", "1");
settings.CefCommandLineArgs.Add("proxy-server", "ProxyAddress");
Cef.Initialize(settings, true, true);
错误提示:
由于编译路径存在中文导致。
一般使用指南 - 必须阅读!
快速FAQ TOC 英文版本
本FAQ?10项。尝试列出一些很酷的CefSharp特性和一些最常见的问题的的。
有关更多提示,请查看不断增加的问题列表faq-able!
- 如何使用.NET 调用 JavaScript方法?
- 如何获取 Javascript 方法返回的结果呢?
- 如何暴露.NET类,提供给Javascript?
- “无法加载文件或程序集
CefSharp.Core.dll”或它的一个依赖。 - 为什么当我将 ChromiumWebBrowser 添加到我的应用程序时,Visual Studio WPF设计器不起作用?
- 如何在目标应用程序中包含Visual Studio C ++ 2012/2013可再发行组件?
- 如何重写 Javascript 的
window.alert事件和相似的? - CefSharp3二进制程序在哪里?
- Windows XP/2003支持?
- 当我重新发布使用CefSharp的应用程序时,需要包括什么文件?
- 构建过程不能复制CEF文件
- 为什么 IndexedDB 返回 QuotaExceededError?
- 在C#中如何处理Javascript事件?
- 如何实现 WinForms 拖放?
Gist
Notes
- 脚本是在 Frame 级别执行,永远页面至少有一个Frame(
MainFrame) - 只能返回一般的值(如int,bool,string等) - 不是您自己定义的复杂(用户定义)类型。这是因为没有(容易的)方式将随机的JavaScript对象暴露给.NET World,至少不是今天。但是,一种可能的技术是,将要返回到.NET代码的Javascript对象转换为JSON对象,使用
JSON.toStringify()方法转化为JSON字符串,并将该字符串返回到您的.NET代码。然后,您可以将该字符串解码为一个类似JSON.net的.NET对象。有关更多信息,请参阅此MSDN链接。 (https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx)
般使用指南 - 如何公开.Net类
Output files description (Redistribution)
注: 如果在 XAML 中初始化 WPF 控件时遇到 FileNotFoundException ,这也适用。
注2:如果从源代码编译(不推荐使用 Nuget 包),并注意到您不能再以debug模式构建,但是release构建工作正常,您可能需要修复Visual Studio版本。 这种情况发生在少数情况下,您将获得如上所示,丢失的非托管.dll文件相同的提示信息。
https://github.com/cefsharp/CefSharp/pull/1989。
旧版本不支持 WPF 设计器,这是不幸的,CefSharp是用C++代码编写的,后者又引用了CEF DLLs 导致的结果。这种情况下,Visual Studio 设计器不能够很好的支持。在论坛的主题将进一步解释,并提供可能的解决方法。 我认为(不幸的是)最简单的解决方法是接受一个事实,即支持并不容易,但是还有其他方法,如果你真的觉得你需要旧版本。
Visual Studio C ++ 2012/2013 再发布?
CefSharp 需要 VC ++运行时 。你必须安装/包括这与你的应用程序的几个选项:
- 你可以在你希望运行
CefSharp基于应用程序的每台计算机上安装VC++。一旦安装更新就可以通过Windows Update进行管理。 - 您可以设置在
Visual Studio C++再分发作为安装程序的先决条件(即的ClickOnce或WiX的工具集) - 通过复制到您的项目在此文件夹(只有当你安装了Visual Studio中的匹配版本存在)的内容:
#对于VC ++ 2012(86)
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT
#对于VC ++ 2012(64)
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\x64\Microsoft.VC110.CRT
#对于VC ++ 2013(86)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT
#对于VC ++ 2013(64)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT
随着第三方法,你将不再需要为前提的 Visual C++ 2012/2013 运行时文件 安装到客户端。就目前的计划是留在VC2013官方CefSharp二进制版本。可行时,我们可能会切换到VC2015。如果你从源代码构建自己的你部署的过程中必须与您构建环境。对于官方的 Nuget 版本的详细信息请参见发布分支表。
欲了解更多信息,请参阅重新分发 Visual C++ 文件。要下载,请访问Visual Studio C++ 2012/2013 再发行
一个新的选项是 JetBrains 在 Nuget.org 上有一个Microsoft.VC120.CRT.JetBrains ,似乎包含相关文件,您仍然需要连接一些后期构建任务将其复制到您的bin文件夹。
注意 当从源代码构建时,确保在部署到没有安装 Visual Studio 的机器时以 Release 模式进行编译。 Visual C++ 使用一套不同的调试和发布版本的运行时库。 Debug 运行时库仅安装有 Visual Studio 中。如果你使用他们已经建在释放模式官方的 NuGet软件包 ,您可以随后建立在调试模式下您的应用程序,因为只有在 Visual C++ 项目需要在 Release 模式下进行编译。
CefSharp.MinimalExample 存储库。 克隆它/下载源码,如果你想要一个真正的小而简单的例子,如何使用CefSharp3。
请注意: 平台目标
使用这些包时,必须 选择 x86 或 x64 。 如果您选择 AnyCPU ,NuGet magic将无法正常工作。_请参阅steps to configure your solution here。
https://github.com/cefsharp/CefSharp/wiki/Windows-XP-No-Longer-Supported Wiki 页面可能很有用,可以由任何具有 GitHub 帐户的人进行编辑,因此请随时提供,您认为可能证明有用的任何信息。
Output files description (Redistribution)
https://github.com/cefsharp/CefSharp/issues/1593#issuecomment-304451518
http://www.cnblogs.com/TianFang/p/4658151.html
11、其他
文档仅供参考,错误之处望修改,或指正
https://github.com/cefsharp/CefSharp/issues/1593#issuecomment-304451518
http://www.cnblogs.com/TianFang/p/4658151.html
11、其他
文档仅供参考,错误之处望修改,或指正
11、其他
文档仅供参考,错误之处望修改,或指正