美文网首页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