谷歌浏览器扩展和NPAPI

15

我需要编写一些Google Chrome扩展程序。问题在于Chrome JavaScript API功能不足-我需要使用本地代码。我考虑编写一个NPAPI插件,为扩展提供一些自定义JS API。

是否可以将扩展程序和自定义的NPAPI插件打包到.crx文件中,然后上传到Chrome扩展商店

此方法的另一个问题是NPAPI插件将有许多版本:Linux,Windows,OS X,x86,x86-64等。是否可以将所有这些版本打包到crx中并使用最佳版本?

谢谢。

编辑:阅读此文后,我意识到无法优雅地解决多平台问题。但是-是否可以为每个平台上传不同的crx到Chrome扩展商店?


在你的编辑中,你说这是不可能的,但考虑到下面Mohamed的回答,这仍然正确吗? - Clay Fowler
1个回答

16
如果您想在一个CRX中拥有多个平台,您应该按照以下方式在清单中排列它们。
"plugins": [
   { "path": "plugin-windows.dll" },
   { "path": "plugin-linux.so" },
   { "path": "plugin-mac.plugin" }
]

请记住,上传NPAPI扩展到商店仅在Google Chrome扩展程序中起作用。对于使用Google Chrome的Google Chrome OS而言,您将无法使用NPAPI。

但您应该研究PPAPI,它是扩展插件开发的推荐方式:

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

与此同时,在扩展程序中使用NPAPI,您需要遵循这个指南(效果非常好):

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

只要记得,您真的需要在扩展中使用NPAPI吗?如果您能找到HTML5解决方法,那将更好。


这些dll/so文件应该编译为x86还是x86-64?PPAPI在哪些版本的Google Chrome中工作? - Alon Gubkin
PPAPI目前仍在开发中,您可以在此处找到更多相关信息:http://www.chromium.org/developers/design-documents/pepper-plugin-implementation编译应该不会有影响(据我所知),我有一个64位系统,在那里正常编译并且可以在32位平台上运行。 - Mohamed Mansour
1
@MohamedMansour 对于Linux来说是有关系的。我必须分别为Linux 32位和64位编译*.so文件,用于项目http://slimtext.org。 - Tyler Liu
@TylerLong 对于 Linux,你需要不同的架构 :) - Mohamed Mansour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接