如何使用JavaScriptCore从C调用JavaScript函数?

时间:2012-12-20 06:22:46

标签: javascript c function swig javascriptcore

我用JavaScript编写了一个函数。例如:

function myName(a)
{
   var k=10;
   print(k);
}

是否可以使用JavaScriptCore从C调用myName?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:0)

你可能想看看谷歌的V8项目(虽然它是用C ++编写的)。这允许您在C ++程序中编译和执行javascript程序(在嵌入式v8引擎的帮助下)。这是Getting Started document page

答案 1 :(得分:0)

是的,你可以。一种方法是从C中调用JSEvaluateScript。像这样:

JSStringRef script = JSStringCreateWithUTF8CString("myName()");
JSEvaluateScript(ctx, script, NULL, NULL, 0, NULL);

这假设您已经使用JSGlobalContextCreate创建了ctx(JSContextRef),并且已经在该上下文中评估了您的脚本(再次使用JSEvaluateScript)将myName函数添加到该ctx。