与http://doc.qt.nokia.com/4.7-snapshot/qtwebkit-bridge.html我们可以将Qt的QObject作为浏览器中的glabal JS对象公开,这有助于公开本机功能,或者公开新的一组JS helper API。目前QtWebkit已经在JavaScriptCore之上实现了QtWebkit桥接。是否可以在谷歌的V8 JS引擎中添加JavaScript扩展?
有没有什么方法可以在Google的V8 JS引擎中公开本机C++/C对象/结构?
与http://doc.qt.nokia.com/4.7-snapshot/qtwebkit-bridge.html我们可以将Qt的QObject作为浏览器中的glabal JS对象公开,这有助于公开本机功能,或者公开新的一组JS helper API。目前QtWebkit已经在JavaScriptCore之上实现了QtWebkit桥接。是否可以在谷歌的V8 JS引擎中添加JavaScript扩展?
有没有什么方法可以在Google的V8 JS引擎中公开本机C++/C对象/结构?
是的。请参阅http://code.google.com/p/v8/source/browse/trunk/src/extensions/?r=8431下的示例,这些示例扩展了v8::Extension
,我相信这些示例是通过api.h
操纵的。
您还可以创建对象以暴露给V8,并通过property interception拦截对象的属性访问。
由于V8引擎默认在Chromium中进行了沙盒处理,因此您可能更愿意编写一个NPAPI插件而不是V8扩展插件。这意味着您的扩展程序无法从沙箱中访问外部资源。某些库(如FireBreath)可能会帮助您更轻松地编写NPAPI插件。
谢谢,不知道这个。 – hplbsh
对ppapi/pnacl/nacl中仍存在的任何希望?我的目标要求我可以创建JavaScript环境可以直接调用的本地对象。消息传递将不适用于我的任务。 –