如何定制一个可供Javascript使用的ppapi?
How to customize a ppapi which could be used by Javascript?
我正在研究 Chromium PPAPI。翻遍了官方参考资料https://developer.chrome.com/native-client/cpp-api-dev中的所有API后,我很少发现任何可以被JS使用或直接与JS通信的API。在我看来,插件进程将设置一个 PP::instance 并且将加载该实例中的所有函数。以 video_capture.cc 为例,你可以在 Chromium 源代码中的 /ppapi/examples/video_capture 下找到它。在这个例子中,自定义的PP::instance VCDemoInstance 注册了一些方法,但我发现只有 HandleMessage() 可以与JS层通信。在 JS 中,您可能会使用 postMessage() 将某些内容传递给上面的 HandleMessage()。
所以这是我的关键问题:有没有一种方法可以在 PP::instance 中创建或定义一个可以直接由 JS 层使用或与之通信的方法?是否可以像obj.apiFromPlugin那样注册一个JS对象调用PPAPI?至少我知道在 Opera JSPP 框架中,这是可以做到的。
如有不妥请指正。你很感激。
在深入研究 PPAPI 后,我找不到在插件中创建 JS 对象的方法。我终于切换到 Chromium Embed Framework,它可以将内容 API 移植到 JS。使用 CefV8Handler 绝对可以解决我的问题。
我正在研究 Chromium PPAPI。翻遍了官方参考资料https://developer.chrome.com/native-client/cpp-api-dev中的所有API后,我很少发现任何可以被JS使用或直接与JS通信的API。在我看来,插件进程将设置一个 PP::instance 并且将加载该实例中的所有函数。以 video_capture.cc 为例,你可以在 Chromium 源代码中的 /ppapi/examples/video_capture 下找到它。在这个例子中,自定义的PP::instance VCDemoInstance 注册了一些方法,但我发现只有 HandleMessage() 可以与JS层通信。在 JS 中,您可能会使用 postMessage() 将某些内容传递给上面的 HandleMessage()。
所以这是我的关键问题:有没有一种方法可以在 PP::instance 中创建或定义一个可以直接由 JS 层使用或与之通信的方法?是否可以像obj.apiFromPlugin那样注册一个JS对象调用PPAPI?至少我知道在 Opera JSPP 框架中,这是可以做到的。
如有不妥请指正。你很感激。
在深入研究 PPAPI 后,我找不到在插件中创建 JS 对象的方法。我终于切换到 Chromium Embed Framework,它可以将内容 API 移植到 JS。使用 CefV8Handler 绝对可以解决我的问题。