通常,Chrome 用户会通过以下方式安装扩展程序:访问 Chrome 应用商店中的扩展程序列表,然后直接从该页面安装扩展程序。但在某些情况下,采用其他安装流程可能更合适。例如:
- 某个扩展程序与其他一些软件相关联,只要用户安装该软件,就应该安装该扩展程序。
- 一位网络管理员想在整个组织中安装同样的扩展程序。
对于上述情况,Google Chrome 支持以下扩展程序安装方法:
- 使用偏好设置 JSON 文件(仅适用于 macOS X 和 Linux)
- 使用 Windows 注册表(仅适用于 Windows)
这两种方式都支持安装托管在 update_URL
中的扩展程序。在 Windows 和 macOS 上,update_URL
必须指向 Chrome 应用商店。使用上述方法安装扩展程序时,Windows 和 macOS 用户将必须使用以下确认对话框启用该扩展程序:
在 Linux 上,偏好设置文件可以指向用户计算机上的 Chrome 应用商店扩展程序、外部托管的扩展程序或 CRX 扩展程序文件。系统不会提示 Linux 用户启用该扩展程序;系统会自动安装该扩展程序。
准备工作
从 Chrome 应用商店安装
如果您要分发在 Chrome 应用商店中托管的扩展程序,必须先发布该扩展程序。然后,记录以下内容:
- 更新网址 -
https://clients2.google.com/service/update2/crx
。此网址指向 Chrome 应用商店。 - 扩展程序的 ID - 您可以在相应扩展程序的 Chrome 应用商店网址中找到该 ID。
从本地 CRX 文件安装
如果您要通过本地文件向 Linux 用户分发应用,则需要打包 CRX 文件,并注意以下信息:
扩展程序 ID - 您可以在扩展程序管理页面
chrome://extensions
中找到该 ID。扩展程序版本 - 显示在扩展程序管理页面
chrome://extensions
或清单 JSON 文件中。
- CRX 文件的位置 - 可以是本地目录,也可以是网络共享。请确保要安装扩展程序的机器可以使用该文件。
从个人服务器安装
如果您要为 Linux 用户分发托管在个人服务器上的扩展程序,则需要按照在 Linux 上安装扩展程序中的说明操作,并注意以下信息:
扩展程序 ID - 您可以在扩展程序管理页面
chrome://extensions
中找到该 ID。update_url XML 文件路径 - 必须与清单 JSON 文件中声明的
update_url
字段的路径匹配。
以下示例假定版本为 1.0,扩展程序 ID 为 aaabbbcccdddeeefff。
使用偏好设置文件
macOS
- 使用扩展程序 ID 的名称创建 JSON 文件。例如:
aaabbbcccdddeeefff.json
请将其放置在以下某个文件夹中:
- 特定用户
~USERNAME/Library/Application Support/Google/Chrome/External Extensions/
- 所有用户
/Library/Application Support/Google/Chrome/External Extensions/
使用字段名称“external_update_url”指定更新网址。例如:
json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
保存 JSON 文件。
启动 Google Chrome 并转到 chrome://extensions;您应该会看到系统列出了该扩展程序。
排查 Mac OS 权限问题
在 macOS 上,只有在文件系统权限阻止无特权的用户更改该文件时,系统才会读取所有用户的外部扩展程序文件。如果您在 Chrome 启动后没有看到安装的外部扩展程序,则可能是外部扩展程序偏好设置文件存在权限问题。要了解这是否是问题所在,请按以下步骤操作:
- 启动 Play 管理中心计划。您可以在“/Applications/Utilities/Console”下找到该模拟器。
- 如果控制台最左边的图标显示“显示日志列表”,请点击该图标。左侧会显示第二列。
- 点击左侧窗格中的“控制台消息”。
- 搜索字符串 Can not read external extensions。如果读取外部扩展文件时出现问题,您会看到一条错误消息。请在它之前直接查看是否有其他错误消息,这应该会对问题进行说明。例如,如果您看到以下错误:“Path /Library/Application Support/Google/Chrome is own by the wrong group”,您需要使用
chgrp
或 Finder 的“获取信息”对话框将目录的群组所有者更改为管理员群组。 - 解决此问题后,请重新启动 Chrome。测试外部扩展程序现已安装完毕。某个权限错误可能会使 Chrome 无法检测到第二个错误。如果未安装外部扩展程序,请重复上述步骤,直到控制台应用中未出现错误为止。
Linux
- 使用扩展程序 ID 的名称创建 JSON 文件。例如:
aaabbbcccdddeeefff.json
。 请将其放置在以下某个文件夹中:
/opt/google/chrome/extensions/
/usr/share/google-chrome/extensions/
以下列表介绍了通过 Chrome 应用商店、CRX 文件或个人服务器安装扩展程序的情况:
- 如需安装 Chrome 应用商店扩展程序,请使用字段名称“external_update_url”指定更新网址。例如
json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
- 如需通过 CRX 文件安装扩展程序,请在“external_crx”中指定位置,在“external_version”中指定版本。例如
json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
- 如需安装托管在个人服务器上的扩展程序,“external_update_url”字段必须指向 XML 文件,如下例所示:
json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
- 如需安装 Chrome 应用商店扩展程序,请使用字段名称“external_update_url”指定更新网址。例如
保存 JSON 文件。
启动 Google Chrome 并转到 chrome://extensions;您应该会看到系统列出了该扩展程序。
支持的语言区域
如果您只想为某些浏览器语言区域安装扩展程序,则可以在字段名称“supported_locales”中列出受支持的语言区域。语言区域可以指定父语言区域(如“en”),在这种情况下,系统将为所有英语语言区域(如“en-US”“en-GB”等)安装扩展程序。如果选择了扩展程序不支持的其他浏览器语言区域,则将卸载外部扩展程序。如果缺少“supported_locales”列表,系统将为任何语言区域安装此扩展程序。 例如:
{
"external_update_url": "https://clients2.google.com/service/update2/crx",
"supported_locales": [ "en", "fr", "de" ]
}
使用 Windows 注册表
在注册表中查找或创建以下项:
- 32 位 Windows
HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
- 64 位 Windows
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
在 Extensions 键下创建一个新密钥(文件夹),其名称与您的扩展程序的 ID 相同。例如:
aaabbbcccdddeeefff
。在扩展程序键中,创建一个“update_url”属性并将其设为以下值:
json { "update_url": "https://clients2.google.com/service/update2/crx" }
启动 Chrome。
转到 chrome://extensions;系统应该会列出该扩展程序。
更新和卸载
Google Chrome 每次启动时都会扫描偏好设置和注册表中的元数据条目,并对 Chrome 应用商店中托管的已安装外部扩展程序进行必要的更改。
如需将本地 CRX 文件扩展名更新到新版本,请更新文件,然后更新偏好设置 JSON 文件中的版本。
如需卸载扩展程序(例如卸载软件),请从注册表中移除偏好设置文件(例如 aaabbbcccdddeeefff.json
)或元数据。
常见问题解答
本部分将解答有关外部扩展程序的常见问题。
Google Chrome 仍支持“预安装”吗?
可以,但只能作为从 Chrome 应用商店 update_url
安装,而不能通过本地 CRX 路径安装。如需了解详情,请参阅应用和扩展程序政策。
使用偏好设置文件进行安装时有哪些常见错误?
- 指定的 ID 或版本不与 CRX 文件中列出的 ID 或版本相同。
- JSON 文件(例如
aaabbbcccdddeeefff.json
)位于错误的位置,或者指定的 ID 与扩展程序 ID 不匹配。 - JSON 文件中存在语法错误(忘记使用逗号分隔条目或在尾部留有逗号)。
- JSON 文件条目指向 CRX 文件的错误路径(或已指定路径但未指定文件名)
- UNC 路径中的反斜杠不会被转义。例如,
"\\server\share\file"
是错误的;它应该为"\\\\server\\share\\extension"
。 - 网络共享出现权限问题。
使用注册表进行安装时有哪些常见错误?
- 指定的 ID 不与 Chrome 应用商店中列出的 ID 相同。
- 密钥是在注册表中的错误位置创建的。
- 注册表条目指向 Chrome 应用商店中 CRX 文件的错误路径。
- 网络共享出现权限问题。
- 并非所有 Chrome 实例都会关闭。设置注册表后,请尝试重新启动计算机。
如果用户卸载了该扩展程序,会发生什么?
如果用户通过界面卸载该扩展程序,那么系统在每次启动时将不再安装或更新该扩展程序。换言之,外部扩展程序已列入屏蔽名单。
如何才能不在屏蔽名单中?
如果用户卸载了您的扩展程序,您应该尊重用户的决定。不过,如果您(开发者)不小心通过界面卸载了扩展程序,可以移除屏蔽名单标记,方法是通过界面正常安装扩展程序,然后将其卸载。