从javascript访问本机c函数

时间:2013-04-02 09:10:54

标签: javascript c webkit java-native-interface

我有一个将在嵌入式平台上运行的javascript应用程序。它必须调用已经在平台中实现的一些c API。这是一个专有应用程序,只能在选定的设备上运行 我在webkit上运行这个应用程序。没有可用的JVM 我正在考虑一些选择并得到一些。我想知道它们中是否有适用或更好的选择。我是javascript的新手,所以我的想法可能不对。

  1. 与JNI类似的东西(如果存在的话)

  2. 为webkit开发一个插件,向应用程序公开一些Javascript API,然后调用本机c函数

  3. 修改webkit

2 个答案:

答案 0 :(得分:3)

你的第二个建议非常接近你需要做的事情。编译浏览器时(不需要自己编译webkit),可以注册函数和对象。

如果你使用Qt,你应该开始here

如果您使用的是GTK,则注册会有所不同,here就是一个很好的例子。

答案 1 :(得分:0)

您可能想要探索的一种方法是脚本警报处理程序。我知道webkit gtk支持它http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html#WebKitWebView-script-alert

您可以在webview上使用简单的javascript警报并在另一侧解析参数,然后调用所需的函数。当然,如果你有复杂的参数(例如对象)无法轻易地转换为字符串,这种方法将很难实现。

唯一的问题是我不知道您的平台是否支持此功能,因为您没有提及平台,我无法检查。