Javascriptのグローバルコンテキストを取得するためにJavaScriptCore APIを使用しています。私はここで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から返される代わりに、大丈夫でしょう。