內嵌安裝淘汰作業常見問題

內嵌安裝功能已自 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 線上應用程式商店中的所有商品,無例外。