Node-webkit浏览器插件

时间:2015-04-03 19:34:36

标签: node.js browser cross-browser node-webkit npapi

问题描述

由于NPAPI插件将在Chrome中弃用(可能在Firefox中过早),并且是基于NPAPI插件的项目(WebChimera)的一部分。我一直在考虑在浏览器中保持NPAPI支持的不同解决方案。 (因为将此插件移植到NaCL目前是不可能的,但该插件可以在目前支持NPAPI的node-webkit的冻结版本中使用)

所以我想知道浏览器页面是否有可能在用户的PC上打开node-webkit应用程序,然后使用带有/不带jQuery的JS来发送有关Node-webkit的html元素的数据窗口(总是在顶部设置)应该是应用程序(可能通过websocket)始终将它放在那里。

我知道我可以获得一个html元素的大小,在JavaScript中的位置,我也知道我可以跟踪用户的滚动和浏览器选项卡的更改,以对窗口大小,位置和可见性进行必要的更改。

问题

真正阻止我尝试这一点的是我怎么知道什么时候浏览器不是全屏,如果它不是全屏,我怎么知道浏览器在屏幕上的位置? JS或直接从node-webkit。另一件值得关注的事情是屏幕是浏览器窗口。

我是唯一一个想过使用node-webkit进行此类努力的人,是否有任何开源项目试图这样做?

对此的任何想法或意见将不胜感激,因为解决方案不仅可以在不久的将来节省NPAPI插件,还可以打开一个世界,其中Node-Webkit也可以用作构建浏览器插件的可行解决方案太。 :)

2 个答案:

答案 0 :(得分:2)

这将涉及许多痛苦的hackery。您必须独立地在所有平台上解决大多数这些问题,并依赖于大量实现细节。

作为一种可能的替代方案,请查看支持插件的plans for FireBreath 2.0,这些插件可以通过名为FireWyrm的新协议通过NPAPI,ActiveX和Native Messaging加载。目前,使用FireWyrm界面时不支持绘图,仅支持Native Messaging。此外它还没有完成,虽然我越来越近了=]

答案 1 :(得分:1)

现在可以使用libvlc直接在NW.js / Electron页面上播放视频:https://www.npmjs.com/package/webchimera.js

这个项目是什么:它是低级别(用C ++编写)插件,它使用libvlc并允许将视频帧解码为JS ArrayBuffer对象。反过来,可以直接在HTML5画布上或使用WebGL绘制此ArrayBuffer对象。该项目直接使用Node.js / V8 API而根本不使用NPAPI,因此即使在NPAPI弃用之后也会存在。另一个好处 - 性能(特别是如果使用WebGL)与原始VLC播放器性能相当。

简单用法示例:https://github.com/jaruba/wcjs-player