|
楼主 |
发表于 2008-11-14 22:20:18
|
显示全部楼层
安装清单
前言安装清单是一个扩展的可被管理的XUL应用程序, 它用以确定即将被安装的扩展的信息. 安装清单包括了识别扩展的元数据, 提供信息关于谁创建了它, 哪里能能找到关于扩展的更多的信息, 哪个版本是与应用程序相兼容的, 应该怎么更新等等.
Install清单文件的格式是RDF/XML.
清单文件必须要命名为install.rdf并且位于扩展的XPI文件中最顶级(XPI是ZIP格式的压缩文件, 这里的"最顶级"指的是在压缩文件内部清单文件应该位于根路径级别).
内容布局安装清单内容的基本布局如下:
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<!-- properties -->
</Description>
</RDF>
一些属性是必要的, 一些则是可选的. 一些只是简单的字符串值, 一些则是复杂的资源.
必要的属性引用你的安装清单必须要正确的指定那些必要的属性, 否则你的addon可能不能够安装.
扩展的id属性是:
id
GUID(GUID的生成, Windows上使用guidgen, Linux上使用uuidgen, Solaris上使用makeuuid)
一个字符串格式, 如extensionname@organization.tld
Examples
<em:id>myextension@mysite.com</em:id>
<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>
version (版本)版本字符串作为标识addon的版本被提供.
对于Firefox/Thundebird 1.0, 版本格式必须要符合指定的规则Extension Versioning, Update and Compatibility.
Examples
<em:version>2.0</em:version>
<em:version>1.0.2</em:version>
<em:version>0.4.1.2005090112</em:version>
type (类型)一个表示addon类型的整型值.
Examples
<em:type>2</em:type>
targetApplication一个object通过addon来指定一个应用程序目标. 意思是说将与应用程序一起工作的addon通过指定的id属性(<em:id>)被识别(for a comprehensive list of application IDs see Valid application versions for add-on developers), 识别过程从最小版本(<em:minVersion>)一直到最大版本(<em:maxVersion>). 这些版本字符串采用相同的方式定义version property并且将被与应用程序的版本进行比较; 这允许extension作者去指定哪个Firefox的版本是extension已经测试通过的.
Install清单文件至少要指定这些版本中的一个, 更可能需要指定更多如果addon目标是与多个支持Addon Manager(Addon管理器)的应用程序(比如, Firefox和Thunderbird)相兼容.
Examples
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.5</em:minVersion>
<em:maxVersion>2.0.0.*</em:maxVersion>
</Description>
nameaddon的name用来在UI中显示.
Examples
<em:name>My Extension</em:name>
Optional Property Reference (可选的属性)
localized (本地化)允许你本地化add-on的名称, 描述, 贡献者(不能肯定这么翻译)和其它的元数据. 本地化描述必须要指定至少一个em:locale用以指出要使用哪个本地化信息.
Examples
当应用程序运行于de-DE区域中时, 以下则是用于被显示的add-on元数据的一组定义.
<em:localized>
<Description>
<em:locale>de-DE</em:locale>
<em:name>Tab Sidebar</em:name>
<em:description>Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.</em:description>
</Description>
以下属性是在本页的其它位置所描述的并可以被包含在本地化属性中的.
- name
- description
- creator
- homepageURL
- developer
- translator
- contributor
description (描述)一个简短的打算被显示在用户界面上的add-on描述. 这个描述应该简短到一行文本.
Examples
<em:description>Advanced foo tools.</em:description>
creator (创建者)打算显示在用户界面上的创建者/主要开发人员的名称.
Examples
<em:creator>John Doe</em:creator>
或
<em:creator>CoolExtension Team</em:creator>
developer (开发人员)联合开发人员的名称. 你可能要指定一人以上的这个值以指定多开发人员.
Examples
<em:developer>Jane Doe</em:developer>
<em:developer>Koos van der Merwe</em:developer>
translator (翻译人员)翻译人员的名称. 你可能要指定一个以上的这个值以指定多个翻译人员.
Examples
<em:translator>Janez Novak</em:translator>
<em:translator>Kari Nordmann</em:translator>
contributor (贡献人员)另外的一些贡献人员的名字. 你可能要指定一个以上的这个值以指定多个贡献人员.
Examples
<em:contributor>John Doe</em:contributor>
<em:contributor>John Doe</em:contributor>
<em:contributor>Jane Doe</em:contributor>
<em:contributor>Elvis Presley</em:contributor>
homepageURL (主页URL)打算显示在用户界面里的addon的主页连接.
Examples
<em:homepageURL>http://www.foo.com/</em:homepageURL>
updateURL (更新URL)连接到一个自定义的更新清单文件上, 它执行了addon可用的更新. 更新URL格式在下边描述. 如果更新URL是允许的, 那么addon处理器会周期性的检查更新清单以确定是否有新的版本可用.
注意:强烈建议updateURL是一个HTTPS(安全的)连接. 非安全的更新URL能被恶意的update.rdf文件所拦截, 然后允许恶意的入侵用户计算机. 另一个解决办法就是, 将你的extension放在AMO上并且完全省去updateURL. 这样将自动能够提供安装的更新.
为了安全的原因, Gecko 1.9应用程序要求如果你指定了一个updateURL, 那么就必须是一个https URL, 或者你必须要包含一个updateKey.
Examples
<em:updateURL>http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;version=%ITEM_VERSION%</em:updateURL>
<em:updateURL>http://www.foo.com/extension/windows.rdf</em:updateURL> |
|