dcef3 基本使用经验总结
dcef3 基本使用经验总结
https://www.cnblogs.com/h2285409/p/10517483.html
加载命令启动参数 --enable-system-flash 会加载系统默认的flash浏览器
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
 | 
procedure OnBeforeCmdLine(const processType: ustring; const commandLine: ICefCommandLine);begin  commandLine.AppendSwitch('--enable-system-flash');  commandLine.AppendSwitch('--disable-web-security');  commandLine.AppendSwitch('no-proxy-server');end;begin  CefCache := 'cache';  CefLocale := 'zh-CN';  CefOnBeforeCommandLineProcessing := OnBeforeCmdLine;  CefSingleProcess := False;  if not CefLoadLibDefault then    Exit;  Application.Initialize;  Application.CreateForm(TMainForm, MainForm);  Application.Run;end. | 
其它cmdLine
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
 | 
procedure OnBeforeCmdLine(const processType: ustring; const commandLine: ICefCommandLine);begin  //加载系统安装的flash,使用前系统需安装flash播放器  //commandLine.AppendSwitch('--enable-system-flash');  //允许js跨域  commandLine.AppendSwitch('--disable-web-security');  str_ip:='218.207.212.79:80';  //设置代理ip  120.203.159.18:8118  218.189.26.20:8080  commandLine.AppendSwitchWithValue('proxy-server',str_ip);  //禁用代理  //commandLine.AppendSwitch('no-proxy-server');  //不同域名不同进程  commandLine.AppendSwitch('--process-per-site');  //指定子进程渲染  //commandLine.AppendSwitchWithValue('browser-subprocess-path', 'cefsubprocess.exe');  //加载指定flash版本  commandLine.AppendSwitchWithValue('ppapi-flash-version', '21.0.0.213');  commandLine.AppendSwitchWithValue('ppapi-flash-path', 'PepperFlash\pepflashplayer.dll');end; | 
拓展JS方法
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
 | 
TCustomRenderProcessHandler = class(TCefRenderProcessHandlerOwn)  protected    procedure OnWebKitInitialized; override;  end;TTestExtension = classclass function hello: string;class procedure mouseover(const data: string);end;procedure TCustomRenderProcessHandler.OnWebKitInitialized;begin{$IFDEF DELPHI14_UP}  TCefRTTIExtension.Register('app', TTestExtension);{$ENDIF}end;class procedure TTestExtension.mouseover(const data: string);varmsg: ICefProcessMessage;beginmsg := TCefProcessMessageRef.New('mouseover');msg.ArgumentList.SetString(0, data);TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);end;class function TTestExtension.hello: string;beginResult := 'Hello from Delphi';end;initialization  CefRemoteDebuggingPort := 9000;  CefRenderProcessHandler := TCustomRenderProcessHandler.Create;  CefBrowserProcessHandler := TCefBrowserProcessHandlerOwn.Create; | 
Delphi执行JS方法
| 
 1 
2 
3 
4 
5 
6 
 | 
procedure TMainForm.actExecuteJSExecute(Sender: TObject);begin  if crm.Browser <> nil then    crm.Browser.MainFrame.ExecuteJavaScript(      'alert(''JavaScript execute works!'');', 'about:blank', 0);end; | 
一般单进程模式是用来调试的,release版本最好是多进程模式,如果debug版本也是多进程的话,由于Browser、Rendder等进程是独立分开的,所以即便在一些函数中打上断点也进不去!而单进程话就都可以进去。至于debug版本多进程模式下为何会弹出两个主程序窗口我也不是很清楚,但是release版本多进程模式下就正常了,只有一个主程序窗口。并且多进程模式下调用CefShutdown就是OK的,app也能够正常析构,而单进程模式调用CefShutdown会直接崩溃!
另外,官方文档上说release版本单进程不是很稳定,不建议使用单进程模式
dcef3 基本使用经验总结的更多相关文章
- MyEclipse10--的使用经验
		
MyEclipse10--的使用经验总结 ------------------ 1.MyEclipse中的验证validation----->>用MyEclipse做ExtJs项目研发的时 ...
 - XCode的个人使用经验
		
Xcode是强大的IDE(但个人觉得不如Visual Studio做得好),其强大功能无需本人再赘述,本文也不是一篇“快捷键列表”,因为XCode上的快捷键极其多,而且还有不少是需要同时按下四个按键的 ...
 - Flask-admin使用经验技巧总结
		
笔者是看狗书入门的flask,狗书上对于flask-admin这个扩展并没有进行讲解,最近因为项目需要,学习使用flask-admin,瞬间体会到了flask开发的快速.扩展的强大 Flask-adm ...
 - Unity3D使用经验总结 缺点篇
		
不论是从官方手册,还是各种第三方教程,几乎涉及到的,都是讲如何使用U3D,以及U3D的优点. 虽然我是用的一个让步语气,但请不要否认U3D的这些优点,它们的确存在. 但对于一个引擎的特性来说,优点与缺 ...
 - Unity3D使用经验总结 优点篇
		
09年还在和其它小伙伴开发引擎的时候,Unity3D就初露头角. 当时就对这种基于组件式的设计结构很不理解. 觉得拆分过于细致,同时影响效率. 而时至今日,UNITY3D已经成为了众多团队的首选3D引 ...
 - 控件使用经验-MVP模式+控件封装
		
项目背景 几年前参与了一个面向学校的人事管理软件的开发,基于WinForm平台.今天主要想谈一谈其中关于控件的使用经验.这个项目我们大量使用了第三方控件.由于这个产品的生命周期很长,我们在设计时要考虑 ...
 - 走进异步世界-犯傻也值得分享:ConfigureAwait(false)使用经验分享
		
在上周解决“博客程序异步化改造之后遭遇的性能问题”的过程中,我们干了一件自以为很有成就感的事——在表现层(MVC与WebForms)将所有使用await的地方都加上了ConfigureAwait(fa ...
 - Fastreport使用经验(转)在Delphi程序中访问报表对象
		
Fastreport使用经验(转) 在Delphi程序中访问报表对象 最基本的方法就是frxReport1.FindObject. 然后把返回的对象强制转换成它的类型,当然,在报表中必须真的有这么个东 ...
 - [转]Session服务器配置指南与使用经验
		
本文转自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/26/SessionServer.html 一.摘要 所有Web程序都会使用Session ...
 
随机推荐
- Java语言基础(1)
			
1 计算机语言发展的分类 1)机器语言:由0,1组成(二进制),可以在计算机底层直接识别并执行(唯一). 2)汇编语言:由助记符组成,比机器语言简单.当执行的时候,把汇编语言转换为机器语言(0101) ...
 - [全局最小割][Stoer-Wagner 算法] 无向图最小割
			
带有图片例子的 [BLOG] 复杂度是$(n ^ 3)$ HDU3691 // #pragma GCC optimize(2) // #pragma GCC optimize(3) // #pragm ...
 - LCA-tarjan understand
			
首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点. 换句话说,就是两个点在这棵 ...
 - 同步windows时间到linux服务器
			
输入date -R 查看系统时间 输入命令 ntpdate time.windows.com 同步windows时间到linux
 - HTML5日期时间输入类型注意事项(time,date)
			
原文链接:http://www.webhek.com/post/html5-date.html 1.HTML5规范里只规定date新型input输入类型,并没有规定日历弹出框的实现和样式.所以,各浏览 ...
 - 解决supervisord启动问题
			
作者:StormerX链接:https://www.jianshu.com/p/d8901ce4712b来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. $ superv ...
 - matplotlib动画
			
注意:要有动画效果,必须独立窗口:独立窗口的设置方法:https://www.cnblogs.com/liming19680104/p/10614070.html import matplotlib. ...
 - 【JZOJ5430】【NOIP2017提高A组集训10.27】图
			
题目 有一个n个点的无向图,给出m条边,每条边的信息形如\(<x,y,c,r>\) 给出q组询问形如\(<u,v,l,r>\) 接下来解释询问以及边的意义 询问表示,一开始你在 ...
 - Angular 如何修改启动的端口
			
在默认的情况下 Angular 启动使用的是端口 4200. 如果修改这个启动的端口,比如说我们希望再 4100 端口上启动? 可以在启动的时候添加端口参数 --port. 例如使用下面的启动命令: ...
 - source和resource的区别
			
idea中,有时新导入的工程会出现 类的标识为红色的J,此时为无效,并且该类不能被编译,这是因为该类所在的文件夹java没有被标记为Sources Root,而放置配置文件的resources文件夹没 ...