我正在使用JavaScriptCore API來獲取Javascript的全局上下文。我希望能夠操縱我在C.回來從Javascript這裏的值是代碼示例我有一個是相關的:從WebKit/JavaScriptCore中的Javascript中獲取返回值
JSGlobalContextRef jsContext = webkit_web_frame_get_global_context(webkit_web_view_get_main_frame(webView));
JSStringRef script = JSStringCreateWithUTF8CString("ReturnOne()");
JSValueRef val = JSEvaluateScript(jsContext, script, NULL, NULL, 0, NULL);
return JSValueToNumber(jsContext, val, NULL);
ReturnOne()是一個JavaScript函數,看起來像這樣:
function ReturnOne() {
return 1;
}
當我在函數中放置一個警報時,它會顯示,所以我知道函數被正確調用。我試圖簡單地打印出數字1,但我得到了一個很大的負值。我沒有正確解釋JSValueToNumber嗎?
任何意見,將不勝感激。謝謝。
編輯:我已經做了一些挖了一圈,發現這種寶石 - https://lists.webkit.org/pipermail/webkit-help/2011-January/001849.html
不幸的是,我得到了相同的結果實現我的C代碼,以這種方式。我在Javascript中的函數返回一個原語,我想將該JavaScript原語轉換爲我期望的值(在本例中爲1)。
我也可以用Javascript中返回對象的替代方法,只要我能得到我期望的數值即可。