美文网首页
CEF Chrome Embedded Framework 小记

CEF Chrome Embedded Framework 小记

作者: Neuroway | 来源:发表于2018-05-12 16:56 被阅读0次

    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等诸多神奇的效果,可以参考下面这张图

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

    相关文章

      网友评论

          本文标题:CEF Chrome Embedded Framework 小记

          本文链接:https://www.haomeiwen.com/subject/fglhdftx.html