我已经为 Google Chrome 编写了一个扩展,该扩展将与我们产品的下一版本一起发布。我想了解我应该提供产品的安装程序的哪些属性、提取路径、注册表项等,以便最终用户不必手动安装扩展,并且安装程序会完成以下工作:安装扩展,并通知用户扩展已安装。截至目前,我编写的代码已放置在一个文件夹中,我使用“加载未打包的扩展”来加载扩展。我应该怎么做才能完成上述任务?
Google 当前通过注册表安装扩展的政策(对于 Windows 计算机)是这样的: 只能通过注册表安装来自 Google Extension Gallery(或 Chrome Web Store - CWS)的扩展。
请参阅此链接 - https://developer.chrome.com/extensions/external_extensions - 有关如何完成此操作的信息。请记住以下几点:
-这种技术仍然会向用户弹出一个消息框。它并不是完全沉默。
-使用此技术时,如果用户随后从 Chrome 中删除该扩展程序,则该扩展程序会被该 Chrome 列入“黑名单”,并且在用户重新安装之前不会重新自动安装 手动。有关详细信息,请参阅自动安装 google chrome 扩展程序不起作用!。
Chrome 有几种以编程方式安装扩展的方法: http://www.chromium.org/administrators/pre-installed-extensions
编辑:是的,正如 FuzzyAmi 指出的那样,这项政策现在已经改变了。
如果您使用的是 GNU/Linux,则可以通过以下方式为所有用户从 chrome 网上应用店预安装扩展程序:
/etc/chromium/policies/managed/yourextension_policy.json
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
{
"ExtensionInstallForcelist": [
"yourextensionuniqueidentifiersup;https://clients2.google.com/service/update2/crx",
"yourextensionuniqueidentifiersup"
]
}
参考
metamask-chrome
- AUR
在此示例中我使用 Dark Reader。
创建一个包含扩展 ID 和两个属性的注册表项:
path
包含 crx 文件完整路径的字符串值,version
包含扩展版本的字符串值。
x64
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Google\Chrome\Extensions\eimadpbcbfnmbkopoojfekhnkhdbieeh]
"path"="C:\\Users\\admin\\Desktop\\Dark-Reader.crx"
"version"="4.9.83"
x32
[HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\Extensions\eimadpbcbfnmbkopoojfekhnkhdbieeh]
"path"="C:\\Users\\admin\\Desktop\\Dark-Reader.crx"
"version"="4.9.83"
使用扩展 ID 和
update_url
属性创建一个注册表项,其中包含更新 url 的字符串值
x64
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Google\Chrome\Extensions\eimadpbcbfnmbkopoojfekhnkhdbieeh]
"update_url"="https://clients2.google.com/service/update2/crx"
x32
[HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\Extensions\eimadpbcbfnmbkopoojfekhnkhdbieeh]
"update_url"="https://clients2.google.com/service/update2/crx"
该问题当前的相关文档是 https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions 和 https://www.chromium.org/administrators/pre-installed-extensions/