2015-04-03 108 views
1

的問題節點WebKit瀏覽器插件

由於NPAPI插件說明會在Chrome(太快可能在Firefox)被棄用,並且是基於NPAPI插件項目(WebChimera)被一部分。我一直在想不同的解決方案來保持瀏覽器中的NPAPI支持。 (因爲將該插件移植到NaCL目前是不可能的,但該插件可用於目前支持NPAPI的凍結版本的node-webkit)

所以我想知道是否可以讓瀏覽器頁面打開一個節點-webkit應用程序在用戶的PC上,然後使用帶/不帶jQuery的JS發送有關Node元素的應用程序(可能通過websocket)將Node-Webkit窗口(始終置於頂部集合)上的數據發送到應用程序中那裏。

我知道我可以得到一個html元素的大小,在JavaScript中的位置,我也知道我可以跟蹤用戶和瀏覽器選項卡更改的滾動,以對窗口大小,位置和可視性進行必要的更改。

問題

,真正阻止我從甚至試圖這樣做的事情是我怎麼會知道,當瀏覽器是不是全屏的,我怎麼會知道瀏覽器在屏幕上的位置,如果它不是全屏無論是從頁面JS還是從node-webkit直接。另一個值得關注的問題是瀏覽器窗口是什麼屏幕。

我是唯一一個想過用node-webkit做這樣的嘗試的人嗎,有沒有任何開源項目試圖這樣做?

對此的任何想法或意見將不勝感激,因爲解決方案不僅可以在不久的將來節省NPAPI插件,還將打開一個世界,Node-Webkit也可以用作構建瀏覽器的可行解決方案插件也是如此。 :)

回答

2

這將涉及到很多痛苦的hackery。您必須獨立解決所有平臺上的大部分問題,並依賴大量的實施細節。

作爲一種可能的替代方案,請查看plans for FireBreath 2.0,它將支持可通過NPAPI,ActiveX和本地消息通過名爲FireWyrm的新協議加載的插件。目前,使用FireWyrm接口時沒有繪圖支持,只支持本地消息傳遞。此外,它不是完全結束,雖然我越來越近=]

+0

感謝taxilian,迫不及待地想看看吧!我是你工作的忠實粉絲。 :)雖然我暫且不提這個問題,因爲解決方案不僅僅是保存NPAPI的可能解決方案,還可以創建基於node.js的瀏覽器插件。我知道它需要痛苦的駭客,並且需要很多非常精確的調整,但是它可以讓web開發人員創建瀏覽器插件。這在很多方面似乎都是正確的。:) – Jaruba 2015-04-06 12:39:46

+0

@tixilian,謝謝你的回答。如果你已經在這裏,我想問你另一個問題:)你怎麼看待創建像FireBreath這樣的框架來簡化Node-Webkit/NW.js的Node.js/io.js C++插件的開發? 。 – RSATom 2015-04-06 12:54:11

+0

我很想看到一個適配器,它可以讓你在一個node.js模塊中使用FireBreath的JSAPIAuto;幾乎可以肯定有可能在頁面上使用某種類型的websocket接口,一個node.js模塊和新的FireWyrm協議有一個基本上執行服務器端的瀏覽器插件,但接口是相同的。這會慢一點,但= =] – taxilian 2015-04-06 12:56:57

1

現在,可以使用libvlc播放視頻直接NW.js /電子頁:https://www.npmjs.com/package/webchimera.js

什麼這個項目是:它是低電平(用C++編寫)addon,它使用libvlc並允許將視頻幀解碼爲JS ArrayBuffer對象。反過來,這個ArrayBuffer對象可以直接在HTML5畫布上繪製,也可以使用WebGL繪製。該項目直接使用Node.js/V8 API,根本不使用NPAPI,因此即使在NPAPI棄用後也會生存。另一件好事 - 性能(特別是如果使用WebGL)與原始VLC播放器性能相當。

簡單的用法示例,請訪問:https://github.com/jaruba/wcjs-player