2017-08-07 255 views
0

我正在嘗試開發一個簡單的cli工具示例,使用JavaScriptCore C API(在我的linux機器中使用,或者如果不能在mac osx中使用它)。參數是JavaScript代碼片段。JavaScriptCore Hello world nightly

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

至今爲止難過的答案 – Nik

回答

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/

我希望這幫助。

乾杯。