C++ CEF 谷歌内核 和JS互交
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ CEF 谷歌内核 和JS互交相关的知识,希望对你有一定的参考价值。
现在 我用
if (handler->m_browser.get())
if (handler->m_browser->GetMainFrame().get())
CString s = L"showmsg('AAAAAAAA');";
CefString strCode(s);
CefString strURL;
handler->m_browser->GetMainFrame()->Executejavascript(strCode, strURL, 1);
//这样的话是可以调用 JS 但是却没办法得到返回值. 然而 我想要用CEF 浏览器来做UI 却需要 JS 回调 以及 返回值的问题.
网上找了很久 说道了 重写CefRenderProcessHandler的OnContextCreated接口 但是 却不知道这个接口需要在什么地方重写 又在什么地方去调用.
所以请教一下 有这方面经验的 小弟不胜感激 如果有 实例,可以发到我邮箱 reun@foxmail.com 只有50分了全额送上
现在 注册到JS 中已经搞定了,但是非常无语的一个问题 JS 中调用我注册好的 本地代码之后 C++里面回调却没收到
基于wke封装的duilib的webkit浏览器控件,可以c++与js互交,源码及demo下载地址
转载请说明原出处,谢谢~~
前些日子用wke内核封装了duilib的webkit浏览器控件,好多群里朋友私聊我希望可以我公布源码,今天把这个控件的源码和使用demo公布。其实这个控件封装起来没什么难度,我只是按照原来作者的demo,把相应的消息封装成duilib对应的。
在此首先要感谢wke内核的作者BlzFans以及soui2界面库的作者flyhigh,BlzFans精简了webkit内核后封装为wke并公布了源码,flyhigh对wke进行处理让他更容易移植到dui工程中。wke内核10M大,加上视频播放模块的话15M。我站在巨人的肩膀上,只是把这个内核简单的封装了一下。
近几年webkit内核貌似很火爆,duilib已经有了webbrowser控件,为什么还要再封装个webkit内核的浏览器控件?原因如下:
1)众所周知IE的版本众多,从经典的IE6到最新的IE11,但是他们并没有统一的实现标准,导致同样的网页文件在不同版本的IE浏览器中的效果不一样。
2)使用IE内核的浏览器效率较低些,这点就不用说了大家都知道
3)实现c++与网页的互交功能太繁琐,做过c++与IE互交的朋友肯定深有体会,需要编写一堆代码才可以完成,而这个wke内核只需要几行代码就可以完成c++控制网页、js控制c++。
4)wke内核完全支持最新的css3和html5技术。
关于c++控制网页和js控制c++的功能,请参见我前面写的博客《给Webkit内核的浏览器控件增加互交功能》,我就不赘述了,我在demo里演示了js控制c++。鼠标移动进如图的红色区域再移动出来,就会弹出对话框,这是js主动调用c++的例子,为了防止暴露个人信息,我就把网页换成了最简单的背景,大家凑活着看吧~~
在c++代码里我有所注释,大家可以自己去测试各种网站。
duilib webkit内核浏览器控件源码及demo已经同步到我的个人维护的duilib库中,现在的版本已经修复了网页的select标签无法显示的问题,我个人库的地址:点击打开链接
或者从csdn资源处下载:点击打开链接
如果发现我的demo有什么不妥,或者封装的控件有问题,请联系我!
Redrain 2014.8.13
以上是关于C++ CEF 谷歌内核 和JS互交的主要内容,如果未能解决你的问题,请参考以下文章