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 ...
随机推荐
- office visio
画 流程图软件 UML 是否要用做类图.时序图?????
- --set-upstream新版本不在支持
--set-upstream最新版本貌似不在支持,使用--track和--set-uptream-to来替代 --set-upstream: git branch --set-upstream [本地 ...
- python继承小demo
# -*- coding: utf-8 -*- """ 继承的意义:实现代码重用,数据函数都可以重用 子类覆盖,子类与父类同名 选择性继承 super().__init_ ...
- SpringCloud使用feign时的复杂参数传递(转)
Feign传参注意 最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上的使用还是有一定的 ...
- CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)
使用CSS3 选择器——笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...
- 浮点数的存储、类型转换知识点(面宝P34)
以float a=1.0f为例: (int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1: (int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换),即读a的内存时 ...
- js 多个三目运算符优先级
读JS代码遇到一段看不懂运算优先级的代码,如下 var BrowserSys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ...
- React native 之 图标库ECharts的使用
github地址:https://github.com/somonus/react-native-echarts 官网:https://www.echartsjs.com/zh/tutorial.ht ...
- 如何在IntelliJ Idea中同时启动不同端口
配置多实例: 选择Idea右上角启动按钮边上的Edit Configurations,在打开的对话框中,去掉Single Instance Only的选项,VM Options中增加-Dserver. ...
- Spring data redis-StringRedisTemplate 用法
Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SDR”,提供了基于jedis客户端API的高度封装以及与spring容器的整合,事实上jedis客户端 ...