內嵌安裝功能已自 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 線上應用程式商店下載徽章加入 安裝流程
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()
將會失敗,因此一律不會執行 failedCallback。
如果沒有這個 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 線上應用程式商店中的所有商品,無例外。