15

我需要編寫一些谷歌瀏覽器擴展。問題在於Chrome瀏覽器的JavaScript API不能提供足夠的功能 - 我需要使用本機代碼。我考慮編寫一個NPAPI插件,它將爲擴展提供一些自定義的JS API。谷歌瀏覽器擴展和NPAPI

是否可以將擴展,加上自定義的NPAPI插件打包到.crx中,然後將其上傳到Chrome Extensions Store

這種方法的另一個問題是,NPAPI插件將有很多版本:Linux,Windows,OS X,x86,x86-64等。是否有可能將所有這些包裝在crx中並使用最佳版本?

謝謝。

編輯:在閱讀this之後,我意識到不可能在一個crx中優雅地解決多平臺問題。但是 - 是否可以將每個平臺的不同crx-s上傳到Chrome擴展商店?

+0

在你的編輯中你說這是不可能的,但根據穆罕默德的回答,這仍然是真的嗎? – 2010-12-08 20:13:28

回答

16

如果你想在一個CRX多平臺,你應該把它們順序清單內:

"plugins": [ 
    { "path": "plugin-windows.dll" }, 
    { "path": "plugin-linux.so" }, 
    { "path": "plugin-mac.plugin" } 
] 

記住上傳NPAPI擴展到商店將只在谷歌Chrome瀏覽器擴展工作。對於Google Chrome OS(使用Google Chrome),您將無法使用NPAPI。

但你應該看看PPAPI這將是推薦的方法做插件開發的擴展:

http://src.chromium.org/viewvc/chrome/trunk/src/ppapi/

在擴展的同時NPAPI,您需要按照本指南(偉大的工程):

http://code.google.com/chrome/extensions/npapi.html

記住,你真的需要在擴展使用NPAPI?如果您可以找到HTML5解決方法,那會更好。

+0

dll/so文件應該爲x86還是x86-64編譯? Google Chrome在哪些版本的PPAPI中起作用? – 2010-11-12 23:33:02

+0

PPAPI目前正在進行中,您可以在這裏找到更多關於這方面的信息:http://www.chromium.org/developers/design-documents/pepper-plugin-implementation 那麼,編譯應該沒有關係(afaik ),我有一個64位系統,我通常在那裏編譯它,它可以在32位平臺上運行。 – 2010-11-13 01:53:21

+1

@MohamedMansour對於Linux來說很重要。我必須分別編譯用於Linux 32位和64位的* .so文件http://slimtext.org – 2013-03-26 13:58:38