我的Firefox插件开发之旅(8)——插件的安装与更新

插件写好了,下面就该做一个安装包了。最好再提供更新功能,以便在插件有更新的时候,及时通知用户进行插件更新。 我们开发的时候,直接将生成的dll丢到Firefox安装目录下的plugins目录就可以工作了,但是你如何说服让用户来手动完成这件事情?估计很难。因此,提供一个安装包,可能是最好的选择。用户只需要点几下鼠标就可以完成插件的安装了。 不过到写这篇文章的时候,我还不清楚怎么让安装包经过Mozilla的验证,因为没有经过验证的插件,在安装的时候会出现“仅安装信任作者的附加组件”提示对话框,提示用户仅安装受信任作者的插件。如果有人知道怎么去掉这个警告对话框,还望不吝赐教。 最最简单的插件安装包在这篇文章中开头处写的很清楚了:https://developer.mozilla.org/en/Shipping_a_plugin_as_an_extension 安装包的目录结构: install.rdf plugins/ pluginlib.dll plugintypes.xpt 其中xpt文件可选。install.rdf的内容为: mypluginid@myplugin.com My Plugin 1.0 {ec8030f7-c20a-464f-9b0e-13a3a9e97384} 1.5 3.0.* 将上面内容安装目录结构用zip格式压缩,将后缀名改为xpi就OK了。 但是我们要做得事情远不止这些: * 如何提供插件的更新自动通知? * 如何将扩展和插件捆绑在一起让用户安装?(因为可能你不仅仅要安装插件,还希望在用户的FF工具栏或菜单上添加一些扩展功能) * 如何对插件进行签名? * 如何发布你的插件和扩展,以便让更多人知晓? 要做的事情还很多。那么我们就一个个来研究吧。 一、如何提供插件的更新自动通知? 关于Install manifest(即install.rdf)文件内容,Mozilla有篇很详细的文章:https://developer.mozilla.org/en/Install.rdf,可以进行参考。 其中有个节点名称是:updateURL。用这个标签包含一个可查询更新信息的URL连接,今后当FF在查询插件是否有更新时,会到你指定的这个 URL上去查询。 这个URL可以是一个cgi程序、servlet、asp(x),也可以是一个固定的rdf文件链接。另外文章中也提到了另外一种办法:如果你没有 提供updateURL,FF的附加组件管理器会向addons.mozilla.org发送请求,当你上传了一个新版本的插件或者通过作者接口 (author interface)更改了兼容性参数,一个更新的manifest文件将会被自动产生。另外,Mozilla建议updateURL使用https而非 http,否则你应该提供updateKey(可以用McCoy生成)。 那么,负责更新的rdf怎么编写呢?你可以参考这篇文章:https://developer.mozilla.org/en/Extension_Versioning%2c_Update_and_Compatibility#Update_RDF_Format。由于文章中写的很清晰,并且提供了详细的例子代码,这里我就不废话了。 二、如何将扩展和插件捆绑在一起让用户安装? 这个很简单。之前的章节我们已经做过一个简单的Extension安装包,如果想附加一个插件的话,只需要和chrome的同级目录下新建一个 plugins目录,然后将dll及相关文件放在里面,最后一起打包即可。 当在FF中安装此xpi时,FF会将Extension和Plugin解压到FF的Profiles目录下。插件和扩展即可生效。 注意这里与我们之前将插件dll放在FF安装目录下的plugins目录下有些不同(至少位置不同),FF同样能够正确地识别我们的插件。另外 Mozilla也推荐做成安装包,这样,在用户卸载组件的时候,可以同时将Extension和Plugin都卸载掉。 三、如何对插件进行签名? 很抱歉,还没找到答案…… 四、 如何发布你的插件和扩展,以便让更多人知晓? 首先需要在Mozilla网站上注册一个账号(需要提供合法E-mail,因为要激活)。 登录后,在Mozilla 附加组件首页上你会看到一个“开发者工具”的链接。进入后,会有明显的导航链接,如“提交附加组件”。通过这个页面,按照向导,你就可以将你的插件发布出来了。剩下的事,就是宣传咯,呵呵。 OK,《我的Firefox插件开发之旅》系列文章就先到这里。将来我也许还会写一些关于编写FF的Extension和Plugin方面的技术细节文章。看心情吧,呵呵。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值