CEF Chrome Embedded Framework 小记

2018-05-12  本文已影响0人  Neuroway

CEF Chrome JS绑定,持有, 互相调用

Chromium 的进程

browser(没有type参数时默认为browser进程)

•renderer(kRendererProcess)

•plugin(kPluginProcess)

•ppapi-broker(kPpapiBrokerProcess)

•ppapi(kPpapiPluginProcess)

•sandbox-ipc(kSandboxIPCProcess)

•utility(kUtilityProcess)

•zygote(kZygoteProcess,linux)

•gpu-process(kGpuProcess)

本地Scheme |   加载

本地插件绑定

全局有效

本地JS – C++互相调用

OnContextCreated 位置可以添加绑定

在OnContextCreated中 创建 对应的Function、Object、等等自定义的变量,之后绑定在context->GetGlobal() 这个对象之中(通过 context->GetGlobal()->AddItem())

其实就是浏览器JS端的 window 对象(context->global)

这样,在浏览器内就可以通过 window 内的变量(函数、Object)来调用C++的内容了

侵删

例子:

自定义CEF小游戏通过C++层面来进行微信认证的流程图,

转载注明作者(微信:lugt00),谢谢

其中为了防止破解还特定设定了全新的Scheme,用来代替网址前面的http, https,结果实际上是打开本地的游戏文件来加载页面内容,加载可以通过文件读写等操作(也就是可以压缩、加密、防篡改)。

URL解析流程

那异步请求怎么办,C++如何持有JS的Callback?

这里我们需要来看看CEFMessageRouter 

CEF内部有一个在render进程上面跑的消息处理函数,通过onQuery可以实现后台上网、后台WebSocket等诸多神奇的效果,可以参考下面这张图

喜欢本文就在下面点一下咯!

上一篇下一篇

猜你喜欢

热点阅读