其它部署选项

通常,用户安装他们自己的扩展。但是有时候你可以自动安装扩展。有两个特殊用例:

  • 扩展附属其他软件。用户安装捆绑软件时扩展被安装。用户卸载捆绑软件时,同时卸载扩展。
  • 网络管理员在公司范围内安装统一的扩展。

自动安装的扩展被称为外部扩展。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,而非配置文件。

{    "aaaaaaaaaabbbbbbbbbbcccccccccc": {      "external_crx": "/home/share/extension.crx",      "external_version": "1.0"    }  }
{    "aaaaaaaaaabbbbbbbbbbcccccccccc": {      "external_update_url": "http://myhost.com/mytestextension/updates.xml"    }  }

使用Windows注册表

  1. 创建.crx扩展文件。(复制到本地目录或网络共享。如servershareextension.crx.)
  2. 在注册表中创建下列键:
    • 32-bit Windows:HKEY_LOCAL_MACHINESoftwareGoogleChromeExtensions
    • 64-bit Windows:HKEY_LOCAL_MACHINESoftwareWow6432NodeGoogleChromeExtensions
  3. 在键Extensions下以与ID相同的名称命名注册表键。 (如aaaaaaaaaabbbbbbbbbbcccccccccc)。
  4. 创建两个分别以"path" 和 "version"命名的字符串类型数据项,设置该扩展的位置和版本。如:
    • path:servershareextension.crx
    • version:1.0
  5. 启动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路径入口。 (或指定了路径但没有文件名)
  • 网络共享权限问题。

 

卸载扩展意味着什么?

如果用户通过用户界面卸载扩展,则每次启动就不会被安装或更新扩展,换句话说,该外部扩展进入了黑名单。

 

如何不被列入黑名单?

如果用户卸载了你的扩展,你应该尊重用户的选择,然而,你 (该扩展开发者) 的扩展可能从用户界面被偶然地卸载 , 你可以通过用户界面正常地卸载该扩展,从黑名单中删除,再卸载之。