本文適用於外部安裝的擴充功能;也就是說,透過非合作夥伴中心方式分發的擴展;參見「 其他分發擴充方式」。 本文不適用於你透過 合作夥伴中心開發者儀表板發佈的擴充功能;關於這種分發方式,請參見 更新 Microsoft Edge 擴充功能。
每隔幾小時,Microsoft Edge 會檢查每個安裝的擴充功能或應用程式是否有更新網址。 要指定擴充功能的更新網址,請使用 update_url 清單中的欄位。
update_url清單中的欄位指向一個可以完成更新檢查的位置。 對於每個 update_url,此 URL 會發送更新的 manifest XML 檔案請求。 如果更新清單 XML 檔案列出了較新的擴充功能或應用程式版本,Microsoft Edge 會下載並安裝該新版本。 手動更新也適用同樣的流程,新 .crx 檔案必須以與目前安裝版本相同的私鑰簽署。
為了維護使用者隱私,Microsoft Edge 不會在自動更新清單請求中傳送任何 Cookie 標頭,且忽略這些請求回應中的標 Set-Cookie 頭。
當你設定擴充功能自動在使用者的電腦上更新時,你的擴充功能與 Microsoft Edge 共享以下優點:
- 加入錯誤與安全修正。
- 新增功能或效能提升。
- 改善使用者介面。
你的擴充功能託管在 Microsoft Edge Add-ons,你可以用和 Microsoft Edge 相同的機制更新擴充功能。 你無法控制更新機制。
(過去支援非商店式擴充功能。另外,之前你是同時更新原生二進位檔和擴充功能。)
重要事項
更新依賴原生二進位檔的擴充功能時要小心。
更新網址
如果你自己架設擴充功能或應用程式,必須將該 update_url 欄位加入你的 manifest.json 檔案。 以下程式碼片段展示了該 update_url 欄位的範例:
{
"name": "My extension",
...
"update_url": "http://contoso.com/mytestextension/updates.xml",
...
}
更新清單
伺服器回傳的更新清單應該是 XML 文件;比如:
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
<updatecheck codebase='http://contoso.com/mytestextension/mte_v2.crx' version='2.0' />
</app>
</gupdate>
更新後的清單 XML 檔案定義了以下屬性:
| 屬性 | 詳細資料 |
|---|---|
appid |
擴充名 ID 是根據公鑰的雜湊值產生的。 要找到擴充功能的 ID,請打開 Microsoft Edge 並查看 edge://extensions。 |
codebase |
檔案的網址 .crx 。 |
version |
這個屬性值被 Microsoft Edge 用來判斷是否應該下載 .crx 指定的 codebase檔案。 它應該會和檔案中 manifest.json.crx 的version值相符。 |
更新清單 XML 檔案可包含多個副檔名的資訊,包含多個 <app> 元素。
測試
Microsoft Edge 每隔幾小時自動檢查擴充功能的更新。 要立即更新擴充功能,請點選 edge://extensions,開啟 開發者模式 切換,然後點擊 更新 按鈕。
進階用法:請求參數
使用參數更新的基本機制很簡單。 要自動更新你的分機:
- 將你的靜態 XML 檔案上傳到你的網頁伺服器,例如 Apache。
- 隨著你釋出新版本的擴充功能,請更新 XML 檔案。
利用更新清單請求中新增的某些參數表示擴展IDversion與 的事實。 你可以用同樣 update URL 的擴充功能來設定所有擴充功能,而不是靜態的 XML 檔案。 要用同樣 update URL 的方法來管理所有擴充功能,請指向一個執行動態伺服器端程式碼的網址,測試參數。
以下範例展示了更新 URL 請求參數的格式:
?x={extension_data}
在這個例子中, {extension_data} 是一個以 URL 編碼的字串,採用以下格式。
id={id}&v={version}
例如,以下兩個擴充功能都指向相同的更新網址 http://contoso.com/extension_updates.php。
- 延伸線 1
- ID:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - 更新網址:
http://contoso.com/extension_updates.php - 版本:
1.1
- ID:
- 延伸2
- ID:
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - 更新網址:
http://contoso.com/extension_updates.php - 版本:
0.4
- ID:
以下範例是更新每個擴充功能的請求。
http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
http://contoso.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4
你也可以在單一請求中列出每個獨特更新網址的多個擴充功能。 以下範例將先前的請求合併為單一請求:
http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4
如果你只發送一個請求,且使用相同更新網址的擴充功能數量過長,更新檢查就會發出更多 GET 請求。
GET如果請求網址大約是 2000 個字元,那就太長了。
未來版本中,可能不再發出多個 GET 請求,而是發出單一 POST 請求,請求參數則放在 POST 正文中。
進階用法:最低瀏覽器版本
隨著 Microsoft Edge 擴充系統的新 API 發布,您可能想釋出只適用於較新版本 Microsoft Edge 的擴充功能或應用程式。 當 Microsoft Edge 自動更新時,大多數用戶可能需要幾天時間才能更新到新版本。
為了確保特定更新只適用於目前或比特定版本更新的 Microsoft Edge 版本,請在你的更新清單中加入該 prodversionmin 屬性。
例如,在以下程式碼中,prodversionmin屬性3.0.193.0值的值指定只有在使用者使用 Microsoft Edge 3.0.193.0 或更新版本時,應用程式才會自動更新至版本2.0:
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
<updatecheck codebase='http://contoso.com/mytestextension/mte_v2.crx' version='2.0' prodversionmin='3.0.193.0' />
</app>
</gupdate>
另請參閱
注意事項
本頁部分內容基於 Google 創作與 分享 的作品,並依 據創用CC 姓名標示 4.0 國際授權條款進行修改。 原始頁面 可在此查閱。
本作品採用 創用CC 姓名標示4.0國際授權條款授權。