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++里面回调却没收到

参考技术A 朋友 ,有结果吗,我也是碰到了这个问题。这个页面JS调用C++,C++调用页面JS一般是要通过com接口的。在IE的webbrowser里我可以调用成功。在cef里还没有好的方法。给个链接共同学习https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration 参考技术B 公司下发一软件,是填写资料,我想做一个自动填表软件,可他不是IE,因为是软件嵌套的,不能换成IE浏览器,我想使用chrome扩展,可不会,我也在等待答案

基于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互交的主要内容,如果未能解决你的问题,请参考以下文章

CEF3研究之javascript集成

编译java-cef

Chromium和cef的区别

cef3 获得 谷歌浏览器 网页源码 哈哈

CefSharp应用——环境搭建

CEF框架:c++和JS交互走过的坑