我正在尝试使用JavaScriptCore C API开发一个简单的cli工具示例(在我的linux机器中使用,或者如果不能在mac osx中使用它)。参数是JavaScript代码段。
JSGlobalContextRef ctx;
JSStringRef script;
bool isOk;
JSValueRef result;
char *js;
ctx = JSGlobalContextCreate(NULL);
script = JSStringCreateWithUTF8CString("myscript");
isOk = JSCheckScriptSyntax(ctx, script, NULL, 1, NULL);
result = JSEvaluateScript(ctx, script, NULL, NULL, 1, NULL);
JSStringRelease(script);
JSGarbageCollect(ctx);
JSGlobalContextRelease(ctx);
应该是这样的(只是一个例子,如果你有更好的例子,我很欣赏),我只是在执行stdout后编写JS输出。我也希望链接反对每晚构建,但总是我做了一个构建链接对我的系统JavaScriptCore.framework。
答案 0 :(得分:0)
我刚开始使用JavascriptCore C API,这是我的HelloWorld代码:
JSGlobalContextRef context = JSGlobalContextCreate(0);
JSValueRef exception;
JSStringRef code = JSStringCreateWithUTF8CString("function helloWorld() { return 1+1; } helloWorld();");
JSStringRef file = JSStringCreateWithUTF8CString("");
JSValueRef value = JSEvaluateScript(context, code, /* thisObject*/ 0, file, 1, &exception);
bool assert = JSValueIsNumber(context, value);
int number = (int)JSValueToNumber(context, value, NULL);
printf("Value: %d\n", number);
我发现这篇文章帮助我用Javascript绑定本机对象。
https://karhm.com/JavaScriptCore_C_API/
我希望这有帮助。
干杯。