我的Firefox外掛程式開發之旅(8)——外掛程式的安裝與更新

來源:互聯網
上載者:User
外掛程式寫好了,下面就該做一個安裝包了。最好再提供更新功能,以便在外掛程式有更新的時候,及時通知使用者進行外掛程式更新。

我們開發的時候,直接將產生的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.comMy Plugin1.0{ec8030f7-c20a-464f-9b0e-13a3a9e97384}1.53.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方面的技術細節文章。看心情吧,呵呵。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.