我正在尝试使用JavaScriptCore C API开发一个简单的cli工具示例(在我的linux机器上使用,如果不可能,也可以在mac中使用)。参数是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);应该是这样的(如果你有更好的例子,我很欣赏这只是一个例子),我只是把JS输出写到stdout中。我也想链接到夜间构建,但是我总是根据我的系统JavaScriptCore.framework做一个构建链接。
发布于 2017-10-27 00:34:36
我刚开始使用JavascriptCore C应用程序接口,这是我的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/
我希望这能有所帮助。
干杯。
https://stackoverflow.com/questions/45552870
复制相似问题