其它部署选项
通常,用户安装他们自己的扩展。但是有时候你可以自动安装扩展。有两个特殊用例:
- 扩展附属其他软件。用户安装捆绑软件时扩展被安装。用户卸载捆绑软件时,同时卸载扩展。
- 网络管理员在公司范围内安装统一的扩展。
自动安装的扩展被称为外部扩展。Google Chrome 支持下列两种安装外部扩展方式:
- 使用 JSON 文件
- 使用Windows 注册表 (仅在Window系统上适用)
两种方式均可从用户电脑上的.crx扩展文件安装该扩展。 JSON文件也支持update URL方式安装。详见 hosting如何寄主扩展。
开始之前
第一,打包.crx file以及确保可以正确安装。
如果想可以从update URL安装,则该扩展需要正确hosted。
在编辑文件和注册表之前,记录下列注意事项:
- 预期的扩展.crx文件定位;或者是更新URL。
- 扩展版本(从清单文件或chrome://extensions页面中指定)
- 扩展标识符(当加载了打包的扩展从chrome://extensions页面指定)
下列例子假设版本是1.0,标识符是aaaaaaaaaabbbbbbbbbbcccccccccc.
使用配置文件
Windows 提示:直到bug 41902解决,应该使用Windows registry,而非配置文件。
- 安装从一个文件安装,使得.crx扩展文件可用。 (复制到本地目录,或网络共享。如servershareextension.crx或 /home/share/extension.crx.)
- 在Google Chrome安装目录下指定external_extensions.json文件。若文件不存在,则创建一个。文件位置依赖操作系统。
- Windows:
- chrome_rootApplicationchrome_versionExtensions
如:c:UsersMeAppDataLocalGoogleChromeApplication6.0.422.0Extensions - Mac OS X:
- /Applications/Google Chrome.app/Contents/Extensions/
- Linux:
- /opt/google/chrome/extensions/
提示:若有必要使用命令chmod确保文件extensions/external_extensions.json可读。
- 在文件external_extensions.json中添加标识符。若从一个文件安装,则指定分别以"external_crx"和 "external_version"命名的扩展位置和版本号,如::
{ "aaaaaaaaaabbbbbbbbbbcccccccccc": { "external_crx": "/home/share/extension.crx", "external_version": "1.0" } }
提示:需要双写字符。如servershareextension.crx应为"servershareextension.crx"。
若从更新URL中安装,则指定以字段 "external_update_url"命名的扩展更新URL。
如:{ "aaaaaaaaaabbbbbbbbbbcccccccccc": { "external_update_url": "http://myhost.com/mytestextension/updates.xml" } }
- 保存该JSON文件。
- 启动Google Chrome 并且转入chrome://extensions; 既能看到列出的扩展。
使用Windows注册表
- 创建.crx扩展文件。(复制到本地目录或网络共享。如servershareextension.crx.)
- 在注册表中创建下列键:
- 32-bit Windows:HKEY_LOCAL_MACHINESoftwareGoogleChromeExtensions
- 64-bit Windows:HKEY_LOCAL_MACHINESoftwareWow6432NodeGoogleChromeExtensions
- 在键Extensions下以与ID相同的名称命名注册表键。 (如aaaaaaaaaabbbbbbbbbbcccccccccc)。
- 创建两个分别以"path" 和 "version"命名的字符串类型数据项,设置该扩展的位置和版本。如:
- path:servershareextension.crx
- version:1.0
- 启动Google Chrome 并且转入chrome://extensions; 既能看到列出的扩展。
升级和卸载
每次启动时,Google Chrome都会扫描在配置文件中的元数据项。并且对一些安装的外部扩展做必要的改变。
升级扩展到新版本,在配置文件或注册表中更新文件和版本。
卸载扩展。(如:卸载软件),从配置文件和注册表中删除元数据。
FAQ
这个章节回答常见的关于外部扩展的问题。
我可以指定一个URL作为外部扩展的路径吗?
可以,可以参见hosting章节如何寄主扩展。
安装配置文件时会有哪些常见错误?
- 未指定在.crx文件中列出的相同的id/version 对。
- external_extensions.json位置放置错误。
- JSON文件语法错误。 (忘记以逗号分割项)
- 额外的位于高级别字典的花括号。
- JSON 文件指向错误的crx路径入口。(或指定了路径但没有文件名)
- UNC路径中的反斜杠未双写 (如,"serversharefile"是错误的;应为"servershareextension")
- 网络共享权限问题。
以注册表方式安装会有哪些常见错误?
- 在列出的.crx文件终不改未指定的相同的id/version对。
- 在注册表中错误的目录下创建了注册表键
- 指向错误的crx路径入口。 (或指定了路径但没有文件名)
- 网络共享权限问题。
卸载扩展意味着什么?
如果用户通过用户界面卸载扩展,则每次启动就不会被安装或更新扩展,换句话说,该外部扩展进入了黑名单。
如何不被列入黑名单?
如果用户卸载了你的扩展,你应该尊重用户的选择,然而,你 (该扩展开发者) 的扩展可能从用户界面被偶然地卸载 , 你可以通过用户界面正常地卸载该扩展,从黑名单中删除,再卸载之。