介绍
Chromium和CEF使用V8 JavaScript引擎 作为它们内部的Javascript实现。浏览器中的每一页(Frame)都有它自己的JS上下文,上下文提供一个空间和安全机制来执行页面上的JS代码,CEF为客户应用程序暴露了多个JS特性,其中js扩展可实现js代码调用c++方法
实现:
1、注册一个V8扩展与js代码
void InitExtensionTest() {
// Register a V8 extension with the below JavaScript code that calls native
// methods implemented in ClientV8ExtensionHandler.
std::string code = "var cef;"
"if (!cef)"
" cef = {};"
"if (!cef.test)"
" cef.test = {};"
"(function() {"
" cef.test.__defineGetter__('test_param', function() {"
" native function GetTestParam();"
" return GetTestParam();"
" });"
" cef.test.__defineSetter__('test_param', function(b) {"
" native function SetTestParam();"
" if (b) SetTestParam(b);"
" });&#