自 2018 年 6 月 12 日起,内嵌式安装已被弃用。有关更多信息,请阅读我们的 Chromium 博客 帖子。
时间轴问题
2018 年 6 月 12 日有哪些变化?
2018 年 6 月 12 日当天或之后首次发布的 Chrome 应用商店内容(例如扩展程序和应用)将 已停用内嵌式安装。“已停用”意味着使用内嵌式安装 在 Chrome 应用商店中,系统会自动将用户重定向至该产品的详情页面 以完成安装。商店中首次上架的现有商品不会发生任何变化 。
2018 年 9 月 12 日会有哪些变化?
此停用设置将应用于所有商品,无论其发布日期为何。100% 内嵌式安装 所有商品的尝试都会重定向到 Chrome 应用商店,用户可以在那里完成 安装。
在 2018 年 9 月 12 日之前我需要做些什么?
您无需进行任何更改,但我们建议您检查自己的安装流程,
chrome.webstore.install()
调用,其中包含直接转到您产品的 Chrome 应用商店商品详情页面。
现在,您可以验证自己能否提供最佳用户体验。
我们还建议您在自己的 Chrome 应用商店中加入新的 Chrome 应用商店下载徽章, 安装流程
M71(2018 年 12 月)将带来哪些变化?
从 M71 开始,Chrome 将不再支持 chrome.webstore.install()
方法和调用
它将失败,进而导致您网站上的安装流程无法正常运行。此时,对 API 的调用
则抛出 JavaScript TypeError。您应在此日期之前移除对该 API 方法的所有调用。
停用内嵌式安装后
安装流程是怎样的?
当您的网站调用 chrome.webstore.install()
时,Chrome 不会再立即触发对话框
而是会打开一个指向 Chrome 应用商店详情页面的新前台标签页(例如
https://chrome.google.com/webstore/detail/EXTENSION_ID
)。然后,用户可以浏览
标准安装流程,系统会显示一个对话框,提示用户阅读
然后安装或取消。对话框关闭后,此标签页会保留在 Chrome 上
应用商店。
如何判断安装是否成功?
当您调用 chrome.webstore.install()
时,系统将触发 failedCallback 并显示错误
表明用户被重定向到了 Chrome 应用商店。它不会指出
安装是否成功。请注意,从 Chrome 71 开始,调用
chrome.webstore.install()
将失败,因此 failCallback 将永远不会执行。
如果没有此 API,您的网站仍可通过 扩展程序和网站之间这可以通过扩展程序消息和 externally_connectable 属性。
"externally_connectable": {
"matches": ["https://www.example.com/*"]
}
// JS running on https://example.com
try {
chrome.runtime.sendMessage('EXTENSION_ID', MESSAGE, function() {
if (chrome.runtime.lastError) {
// Extension is not installed.
}
});
} catch (e) {
// Extension is not installed.
}
替换以下内容:
EXTENSION_ID
:您的扩展程序的 ID。MESSAGE
:要发送到扩展程序的消息字符串或对象。
如何在安装后触发信息页面?
请使用 chrome.runtime 事件,并在安装后打开新标签页。这里的示例使用 您的背景页:
chrome.runtime.onInstalled.addListener(function listener(details) {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({url: "https://www.example.com/"});
chrome.runtime.onInstalled.removeListener(listener);
}
});
我可以申请豁免吗?
否。此政策变更适用于 Chrome 应用商店中的所有商品,无一例外。