美文网首页JavaScriptCore C API
## C++ webkit调用javascript (2)

## C++ webkit调用javascript (2)

作者: 红凉梦 | 来源:发表于2019-12-26 14:16 被阅读0次

C++ webkit调用javascript

要在c++代码中调用Javascript函数,首先要做的是得到需要调用的Javascript函数的引用。

第一步:得到定义了该函数的Javascript context。

第二步:到这个context的全局对象global object,假定你定义的Javascript函数是全局的

JSObjectRef globalObject = JSContextGetGlobalObject(context);

得到这个全局对象之后,需要一个包含待调用的全局函数名的js字符引用对象 JSStringRef 。假定 Javascript函数my_function声明如下:

function my_function(a,b)
{

//do something

alert(a+b);

}

第三步:得到Javascript函数“my_function”的引用

首先创建一个字符串my_function:

    JSStringRef     myFunctionName = JSStringCreateWithUTF8CString("my_function");
然后用"my_function"这个函数名称从全局对象的属性中得到这个函数的引用functionObject。
JSObjectRef functionObject = (JSObjectRef)JSObjectGetProperty(context, globalObject, myFunctionName, NULL);

第四步:调用javascript函数

下面的示例中,假设全局javascript函数my_function包含两个数值类型的参数:

JSValueRef  arguments[2];
JSValueRef result;
int num_arguments = 2;
arguments[0] = JSValueMakeNumber(context, 1.0);
arguments[1] = JSValueMakeNumber(context, 3.14);

result = JSObjectCallAsFunction(context, functionObject, globalObject, num_arguments, arguments, NULL);

相关文章

网友评论

    本文标题:## C++ webkit调用javascript (2)

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