从javascript访问本机c函数
我有一个javascript应用程序,它将在嵌入式平台上运行。它必须调用一些已经在平台中实现的c API。这是一个专有应用程序,只能在选定的设备上运行。从javascript访问本机c函数,javascript,c,webkit,java-native-interface,Javascript,C,Webkit,Java Native Interface,我有一个javascript应用程序,它将在嵌入式平台上运行。它必须调用一些已经在平台中实现的c API。这是一个专有应用程序,只能在选定的设备上运行。 我正在webkit上运行此应用程序。没有可用的JVM。 我正在考虑一些选择,并得到了一些。我想知道其中是否有适用的或更好的选择。我是javascript新手,所以我的想法可能不正确 类似于JNI的东西(如果存在的话) 为webkit开发一个插件,该插件向应用程序公开一些Javascript API,然后调用本机c函数 修改webkit 你的第二
我正在webkit上运行此应用程序。没有可用的JVM。
我正在考虑一些选择,并得到了一些。我想知道其中是否有适用的或更好的选择。我是javascript新手,所以我的想法可能不正确
你的第二个建议非常接近你需要做的。编译浏览器时(不需要自己编译webkit),可以注册函数和对象 如果您使用的是Qt,那么您可能应该开始
如果您使用的是GTK,那么注册就不同了,这是一个很好的例子。您可能希望探索的一种方法是脚本警报处理程序。我知道WebKitGTK支持它 您可以在webview上设置简单的javascript警报,在另一端解析参数,然后调用所需的函数。当然,如果您有复杂的参数(例如对象),无法轻松转换为字符串,那么这种方法将很难实现
唯一的问题是,我不知道您的平台是否支持此功能,因为您没有提到平台,所以我无法检查 不会使用QT方法限制平台(我知道chrome不支持QT)。像NPAPI这样的东西是更好的选择吗?@jogabonito-QT是一个框架。chrome不使用它的事实不会改变它。正如我在回答中提到的,我给出的解决方案只有在构建浏览器时才有意义。