將外部安裝的擴充功能設定為自動更新
本文適用於外部安裝的延伸模組;也就是說,透過合作夥伴中心以外的方法散發的擴充功能;請參閱 散發擴充功能的替代方式。 本文不適用於您使用 合作夥伴中心開發人員儀錶板發佈的延伸模組;如需該散發方法,請參 閱更新 Microsoft Edge 擴充功能。
每隔幾個小時,Microsoft Edge 會檢查每個已安裝的擴充功能或應用程式是否有更新 URL。 若要指定延伸模組的更新 URL,請使用 update_url
指令清單中的欄位。 指令 update_url
清單中的欄位指向可以完成更新檢查的位置。 針對每個 update_url
,此 URL 會傳送更新指令清單 XML 檔案的要求。 如果更新指令清單 XML 檔案列出較新的擴充功能或應用程式版本,Microsoft Edge 會下載並安裝較新的版本。 相同的程式適用於手動更新,其中的新 .crx
檔案必須使用與目前安裝的版本相同的私鑰進行簽署。
為了維護用戶隱私權,Microsoft Edge 不會傳送任何 Cookie
具有自動更新指令清單要求的標頭,而且會忽略回應這些要求中的任何 Set-Cookie
標頭。
當您將擴充功能設定為在使用者的電腦上自動更新時,您的擴充功能會與 Microsoft Edge 共用下列優點:
- 併入 Bug 和安全性修正。
- 新增功能或效能增強功能。
- 改善使用者介面。
Microsoft Edge 附加元件網站會裝載您的擴充功能,而且您可以使用與 Microsoft Edge 相同的機制來更新延伸模組。 您無法控制更新機制。
(先前支援非存放區型擴充功能。此外,您先前已同時更新原生二進位檔和擴充功能。)
重要事項
當您更新相依於原生二進位檔的擴充功能時,請小心。
更新 URL
如果您裝載自己的擴充功能或應用程式,則必須將欄 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 |
延伸模組標識碼會根據公鑰的哈希產生。 若要尋找擴充功能的識別碼,請開啟 Microsoft Edge,並查看 edge://extensions 。 |
codebase |
檔案的 .crx URL。 |
version |
Microsoft Edge 會使用這個屬性值來判斷是否應該下載 .crx 所指定的 codebase 檔案。 它應該符合檔案.crx 檔案中的 manifest.json 值version 。 |
更新指令清單 XML 檔案可以包含多個延伸模組的相關信息,方法是包含多個 <app>
元素。
測試
Microsoft Edge 會每隔幾小時自動檢查擴充功能的更新。 若要立即更新擴充功能,請移至 edge://extensions
,開啟 [ 開發人員] 模式 切換,然後按兩下 [ 更新] 按鈕。
進階使用方式:要求參數
使用參數更新的基本機制很簡單。 若要自動更新延伸模組:
- 在 Web 伺服器上上傳靜態 XML 檔案,例如 Apache。
- 當您發行新版本的擴充功能時,請更新 XML 檔案。
利用新增至更新指令清單要求的某些參數表示擴 ID
充功能和 version
的事實。 您可以對所有擴充功能使用相同的 update URL
,而不是靜態 XML 檔案。 若要對所有擴充功能使用相同的 update URL
,請指向執行動態伺服器端程序代碼的 URL,以測試參數。
下列範例示範更新 URL 的要求參數格式:
?x={extension_data}
在此範例中, {extension_data}
是使用下列格式的 URL 編碼字串。
id={id}&v={version}
例如,下列兩個延伸模組都指向相同的更新 URL http://contoso.com/extension_updates.php
。
- 延伸模組 1
- 識別碼:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- 更新 URL:
http://contoso.com/extension_updates.php
- 版本:
1.1
- 識別碼:
- 延伸模組 2
- 識別碼:
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
- 更新 URL:
http://contoso.com/extension_updates.php
- 版本:
0.4
- 識別碼:
下列範例是更新每個擴充功能的要求。
http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
http://contoso.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4
您也可以針對每個唯一的更新 URL,在單一要求中列出多個擴充功能。 下列範例會將先前的要求合併成單一要求:
http://contoso.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4
如果您傳送單一要求,而且使用相同更新 URL 的已安裝延伸模組數目太長,更新檢查會發出更多 GET
要求。
GET
如果要求URL大約是2000個字元,則要求URL太長。
在未來的版本中,可能會發出單POST
一要求,並在本文中POST
包含要求參數,而不是發出多個GET
要求。
進階使用方式:最低瀏覽器版本
當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>
另請參閱
Chrome Dev 檔:
注意事項
此頁面的部分是根據Google所建立和 共用的工作進行 修改,並根據 Creative Commons Attribution 4.0 國際授權中所述的條款使用。 您可以 在這裡找到原始頁面。
此工作是根據 Creative Commons Attribution 4.0 International License 授權。