cefclient c++与js交互(2): c++注册变量,js调用(cef多进程模式)

1,官方文档地址:

https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md

2,我的测试代码

2.1说明:

注册变量给js使用,所以逻辑必然还是在render进程中注册:注册地方如下:

/*client_renderer.cc文件文件中的 class ClientRenderDelegate 的方法OnContextCreated*/
  void OnContextCreated(CefRefPtr<ClientAppRenderer> app,
                        CefRefPtr<CefBrowser> browser,
                        CefRefPtr<CefFrame> frame,
                        CefRefPtr<CefV8Context> context) override {
    message_router_->OnContextCreated(browser, frame, context);
  }
  //这个方法中注册
  //具体实现在如下的类中
  CefMessageRouterRendererSideImpl::OnContextCreated(CefRefPtr<CefBrowser> browser,
                        CefRefPtr<CefFrame> frame,
                        CefRefPtr<CefV8Context> context){
        // Register function handlers with the 'window' object.
    CefRefPtr<CefV8Value> window = context->GetGlobal();

    CefRefPtr<V8HandlerImpl> handler = new V8HandlerImpl(this, config_);
    CefV8Value::PropertyAttribute attributes =
        static_cast<CefV8Value::PropertyAttribute>(
            V8_PROPERTY_ATTRIBUTE_READONLY | V8_PROPERTY_ATTRIBUTE_DONTENUM |
            V8_PROPERTY_ATTRIBUTE_DONTDELETE);
            
     //注册变量到网页上下文
    CefRefPtr<CefV8Value> music_player_Info = CefV8Value::CreateObject(nullptr, nullptr);

    //string
	CefRefPtr<CefV8Value> string_test = CefV8Value::CreateString("musicPlayer");
    music_player_Info->SetValue("StringTest", string_test, attributes);

    //bool
    CefRefPtr<CefV8Value> bool_test = CefV8Value::CreateBool(true);
    music_player_Info->SetValue("BoolTest", bool_test, attributes);

    //Int
	CefRefPtr<CefV8Value> Int_test = CefV8Value::CreateInt(10);
	music_player_Info->SetValue("IntTest", Int_test, attributes);

    obj_music_player->SetValue("clientInfo", music_player_Info, attributes);

	window->SetValue("MusicPlayer",obj_music_player, attributes);
                        }

2.2js调用测试:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值