歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux上運行Mozilla平台小記

Linux上運行Mozilla平台小記

日期:2017/2/28 16:13:43   编辑:Linux教程

由於之前的項目決定在Linux上運行Mozilla平台,最後基於Mozilla開發基本應用。所以了解了一些Mozilla平台的開發。 雖然日後估計不會再用到了,當個人覺得還是很強大的一個平台,之前也看到過一個基於這個平台的企業應用,很不錯。依賴Mozilla實現跨平台,並且可以用Linux+Mozilla實現個瘦客戶端。小記如下:firefox 定制

一種是通過userChrome.css進行定制,可修改見面樣式,還可以通過樣式使某部分不顯示

perf.js 是軟件的默認配置,可以修改一些配置選項

另一種直接修改firefox源碼,firefox完全通過xul和js編寫的,所以修改firefox目錄下的chrome/browser.jar文件

firefox 擴展

firefox擴展的一般目錄結構

ext/

chrome/

content/

main.xul #按照chrome.manifest中的設定,存放相應的界面xul,js腳本之類的資源

chrome.manifest #chrome方式資源定位的描述文件,定義了如何通過chrome資源定位訪問到指定文件

install.rdf #描述擴展,如作者,廠商,版本,擴展的類型(有主題,程序),要求的firefox版本

當開發完成之後,就可以將ext整個目錄用zip打包,修改擴展名為xpi,就可以讓firefox安裝使用了。

main.xul

是用來描述界面的xul,使用xml語言,其中也可以嵌入js腳本

*.js

主要的程序邏輯功能還是放入js文件當中,然後在main.xul中進行引用

chrome.manifest

可描述多種類型如:content, overlay, locale

content: 資源文件

overlay: 覆蓋原有某部分內容,如覆蓋firefox浏覽器的狀態欄,添加擴展所需的內容。

locale: 國際化資源的定位

國際化

采用xml的方式進行國際化。

首先需要在chrome.manifest當中,指定locale資源位置,然後通過*.dtd和.properties文件讀取本地化的文本

在xul中引用的國際化文本,使用dtd文件

在程序中,如js腳本中引用國際化文本,使用properties文件

mozilla 平台開發

firefox和thunderbird等應用程序,全是基於mozilla平台進行開發的。mozilla平台主要使用xul,xpcom,npruntime等方式進行開發。

xpcom和npruntime都是對mozilla平台的進行擴展,通過這兩種方式可以使用c/c++訪問系統資源,向mozilla程序提供接口。

xpcom組件趨向於被npruntime取代。

還可以使用Mozilla embedding APIs將mozilla組件內嵌入其他應用程序當中。

mozilla 應用程序

一般目錄結構如下:

app/

chrome/

content/

main.xul

locale/ #國際化資源存放位置

en-US/

chrome.manifest #同樣是chrome資源定義

defaults/

preferences/

prefs.js #應用程序默認配置,修改xulrunner的默認配置

extensions/

application.ini #應用程序配置描述,作者,mozilla要求版本等

應用程序與firefox擴展目錄結構基本相同,因為firefox就是基於mozilla平台開發,擴展機制也同樣是利用mozilla平台提供的。

應用程序使用xulrunner運行: xulrunner application.ini

xpcom 組件:

通過開發xpcom組件,給於應用程序訪問系統資源的方法,以及其他用來擴展xulrunner應用程序的功能。

*.idl 描述接口,所有接口都繼承自nsISupports,描述中還需要uuid,用來唯一標識這個接口,使用uuidgen程序生成。

xpidl 程序可以通過idl文件生成,c++頭文件和實現文件,還有xpt文件

*.xpt 是接口的二進制描述文件。提供xulrunner訪問接口的速度。

*Module.* 是用來實現Module的接口,以讓xulrunner調用該組件

通過NS_IMPL_NSGETMODULE和nsModuleComponentInfo結構,告知xulrunner,組件對象的注冊。

組件安裝

最終將生成*.so和xpt文件放入xulrunner/components目錄下,如果存在components.list文件,則需要添加文件。

組件是否注冊會在應用程序的用戶配置目錄下生成compreg.dat文件

!!當出現注冊不上時,可嘗試刪除compreg.dat文件!!

使用xpcom組件:

var c = Components.classes["@ccoss.com/desktop;1"].createInstance(); //獲得組件實例

c = c.QueryInterface(Components.interfaces.nsICcoss); //要使用的接口,因此一個組件可以實現多個接口

Copyright © Linux教程網 All Rights Reserved