从 WebKit / JavaScriptCore 中的 Javascript 获取返回值
Getting return value from Javascript in WebKit / JavaScriptCore
我正在使用JavaScriptCore API来获取Javascript的全局上下文。我希望能够操纵我从 C 语言中的 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 返回对象的替代方案,只要我能得到我期望的数值。
似乎
还可以。 但也许你应该把 ; 到ReturnOne()
末尾。
也许你应该将返回的值转换为 int,因为它返回 double,而你的 print 函数接受 int 值。
我不尝试,但它应该看起来像,
JSStringRef script = JSStringCreateWithUTF8CString("ReturnOne();");
JSValueRef val = JSEvaluateScript(jsContext, script, NULL, NULL, 0, NULL);
return (int)JSValueToNumber(jsContext, val, NULL);
相关文章:
- 使用Javascript获取所选选项ID
- 可以't使用JavaScript获取width属性
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- Javascript获取上一个元素的内容
- 使用Javascript获取Twitter访问令牌
- 在不同的文件中使用Javascript获取表单数据
- 如何用javascript获取谷歌地图的经度和纬度
- 使用javascript获取表的td值
- 如何使用JavaScript获取当前URL
- 如何在谷歌网站中使用javascript获取当前页面的网址
- Javascript获取所有锚链接的索引
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 如何使用javascript获取下一个/转发url
- 需要使用javascript获取输入文本,然后将其添加到句子中
- 使用JavaScript获取Gridview单元格值
- 使用javascript获取跨度的文本
- 如何使用Javascript获取POST请求填充的元素的值
- JavaScript-获取数据属性的值返回未定义的值
- Javascript:获取“;FORM”;它是在.html到外部.js文件中创建的