WebView2 發行前版本和發行 SDK

WebView2 SDK 會以 Microsoft.Web.WebView2 NuGet 套件的預發佈或發行版本形式提供。 將發行前版本 SDK 與 Microsoft Edge 的預覽通道一起使用,或使用發行 SDK 與 WebView2 執行階段。

發行前版本如果您想要在將最新的 WebView2 API 包括實驗性 API 新增到執行階段之前測試這些 API,則可以在開發期間使用 SDK 套件。 建議使用 Canary 通道,因為它具有最新 API 的實作。 當您想要測試和使用實驗性 WebView2 API 時,請使用下列組合:

  • WebView2 SDK 的搶 鮮版
  • 開發用戶端上的 Microsoft Edge 預覽通道

發行 SDK 套件只包含穩定 API,不包含實驗性 API。 當您使用 WebView2 應用程式的生產版本時,請使用下列組合:

  • WebView2 SDK 的 發行 版本。
  • 開發用戶端上的 WebView2 執行階段

下面提供有關發行前版本和發行 SDK 套件的詳細資訊。

引入 API 的階段

新 API 會分階段推出,如下所示:

API 狀態 描述
發行前版本 SDK 中的實驗性 1. 首先,API 在發行前版本 SDK 中處於實驗性狀態。 (有時 API 會略過實驗階段,直接新增到發行前版本 SDK 中的穩定版本中。) 您可以測試這些 API 並提供意見反應。 API 尚未在發行 SDK 中。
發行前版本 SDK 中的穩定版 2.然後,API在發行前SDK中升級為穩定。 API 尚未在發行 SDK 中。
發行 SDK 中的穩定 3. 然後將 Stable API 升級為包含在發行 SDK 中。 (有時,API 會在發行前 SDK 中同時升級為穩定版本,並在發行 SDK 中同時升級為穩定版本。) 這通常會在 API 在發行前 SDK 中升級為穩定版本後 1 個月發生。 API 也會保留在發行前版本 SDK 中。

引進新 API 的階段圖表

另請參閱:

選取要使用的 SDK 類型

若要選取 Visual Studio 專案使用的 WebView2 SDK NuGet 套件版本,請在 Visual Studio 中,以滑鼠右鍵按一下專案,選取 [ 管理 NuGet 套件],選取或清除 [ 包含發行前版本] 核取方塊,選取 Microsoft.Web.WebView2 套件,然後在 [ 版本 ] 下拉式清單中,選取一個版本的 Microsoft.Web.WebView2 NuGet 套件。

如需詳細資料,請參閱為 WebView2 設定您的開發環境中的安裝或更新 WebView2 SDK。 您也可以在 NuGet 網站檢視 Microsoft.Web.WebView2 SDK 套件清單。

使用 SDK 的發行前版本以及 Microsoft Edge 的預覽通道

開發 Evergreen WebView2 應用程式時,除了針對 WebView2 執行階段進行測試之外,還請定期針對最新的 Microsoft Edge 預覽通道測試應用程式。 由於 Web 平台不斷演進,因此定期測試是確保您的應用程式繼續按預期運作的最佳方式。

使用 WebView2 發行前版本 SDK 套件時,請在開發用戶端上使用 Microsoft Edge 預覽通道。 預覽頻道也稱為 測試人員 頻道。 建議使用 Canary 預覽通道,而不是 Beta 或開發人員,因為 Canary 是最新的,並且具有最新實驗性 API 的實作。

發行前版本 SDK 套件是發行 SDK 套件的超集。 發行前版本 SDK 包含以下方法簽章:

  • 實驗性 API
  • 不再是實驗性的穩定 API,但尚未包含在發行 SDK 中。
  • 已新增至發行 SDK 的穩定 API。

Microsoft Edge 預覽通道提供實驗性 WebView2 API 和穩定 API 的實作。 實驗性 API 可能會根據意見反應變更。 避免使用發行前版本 SDK 套件來建置生產應用程式。

如需暫時將應用程式指向預覽通道而不是預設為 WebView2 Runtime 的相關資訊,請參閱 切換到預覽通道以測試即將推出的 API 和功能

另請參閱:

使用 SDK 的發行版本與執行階段

當您使用 WebView2 發行 SDK 套件時,請在開發用戶端上使用 Evergreen WebView2 執行階段 ,而不是 Microsoft Edge 預覽通道。 根據預設,WebView2 應用程式會以執行階段為目標,而不是 Microsoft Edge。 依據設計,Microsoft Edge 穩定通道不支援 WebView2。

發行 SDK 套件包含生產版本中的所有穩定 API,且不包含實驗性 API 的方法簽章。 發行 SDK 套件中的所有 API 都受到完全支援,在相同或更高的 WebView2 執行階段組建編號中。

另請參閱:

如需有關 Evergreen 執行階段自動更新的詳細資訊,請參閱:

發行頻率

請參閱:

具現化 WebView2 的最低版本和組建編號

若要讓用戶端能夠建立 WebView2 執行個體,並使用 WebView2 正式發行 (SDK 組建 616) 中的 API 集合,用戶端必須具有 WebView2 執行階段版本 86.0.616.0 或更新版本。 執行階段 86.0.616.0 是特殊發行版本,因為它是正式發行版本。

在開發電腦上,用戶端必須具有 Microsoft Edge 預覽通道版本 86.0.616.0 或更新版本,或 WebView2 執行階段版本 86.0.616.0 或更新版本。

API 的回溯相容性

WebView2 SDK2020 年 10 月 19 日版本 1 (發行 SDK 1.0.622.22 (版本 1 起就一直與舊版相容,) WebView2 SDK 的封存版本資訊) 。 您可以更新 WebView2 應用程式,以使用來自最新發行版本 SDK 的最新 API。 您的應用程式會繼續在用戶端上運作,因為用戶端會自動擁有最新的 Evergreen WebView2 執行階段。

發行 SDK 套件中的 WebView2 API 是穩定且回溯相容的。 當使用的 WebView2 執行階段具有等於或更高的組建編號等於或更高於引入 API 的 SDK 組建編號時,WebView2 API 可正常運作。 組建編號是 Webview2 SDK 的四個部分版本號碼,以及 Microsoft Edge 和 WebView2 執行階段的四個部分版本號碼的第三部分。

  • 當您使用的組建編號等 於或小 於 WebView2 Runtime 的 WebView2 SDK 時,您在該 SDK 中有權存取的每個 API 都能與該版本的 Runtime 搭配使用。

  • 當您使用的 WebView2 SDK 的組建編號大 WebView2 執行階段時,執行階段中無法使用較新的 API 實作。

例如,如果 API 是在 SDK 1.0 中引進。900.0 版本,則該 API 可與 Runtime 94.0 搭配使用。900+.0,但不適用於執行階段 90.0。700.0.

您必須協調您用於開發的 WebView2 SDK 版本,以及安裝在用戶端電腦上的 WebView2 Runtime 版本。 用戶端應該擁有支援您用來開發應用程式的 SDK 版本中所有最新 API 的 Runtime 版本。 若要完整支援 SDK 發行版本中的最新 API,用戶端上的執行階段必須具有大於或等於 SDK 組建編號的組建編號。

實驗性 API

若要嘗試開發中的即將推出新功能,請使用 實驗性 API。 實驗性 API 包含在發行前版本 SDK 中,但不包含在發行 SDK 中。

使用實驗性 API 進行開發並提供意見反應

WebView2 發行前版本 SDK 套件中的實驗性 API 不保證具有先前相容性,而且可能會在未來的執行階段更新中移除。

若要實驗性 API 的完整支援,請使用 Microsoft Edge 預覽通道,而不是 Evergreen WebView2 Runtime。 當 WebView2 SDK 的預發佈版本最初可供使用時,該 SDK 僅適用於 Microsoft Edge Canary。 之後不久,發行前版本 SDK 也可以與 Beta 和 Dev 通道一起使用。

使用發行前 SDK,盡早嘗試新的實驗性 API,並在實驗性 API 升級為穩定、回溯相容 API 之前提供意見反應。

  • 在發行前 SDK) 中 (的實驗性 API 不保證具有先前相容性。
  • 發行前版本 SDK 中的 Stable API 具有回溯相容性,即使它們尚未包含在發行 SDK 中。
  • 發行 SDK 中的 Stable API 具有回溯相容性。

如需詳細資訊,請參閱上方的 API 的回溯相容性

WebView2 小組正在尋求實驗性 WebView2 API 的意見反應,這些 API 可能會在未來版本中升級為穩定。 實驗性 API 在 WebView2 SDK 參考文件中標示為「實驗性」,例如:「注意:這是我們發行前版本 SDK 隨附的實驗性 API。」

若要協助您評估實驗性 API 並分享意見反應,請使用 WebView2Feedback 存放庫。

另請參閱:

從實驗性 API 移至穩定 API

將 API 從實驗性狀態移至穩定狀態後,您必須將應用程式的程式碼移至穩定 API。 不建議對生產應用程式使用實驗性 API 或發行前版本 SDK。 當您將應用程式從使用實驗性 API 移至使用穩定 API 時,請遵循下列做法:

  • 在 Visual Studio 的專案中,將您的 WebView2 SDK 套件版本更新為較新的發行前 SDK 或發行 SDK。 請參閱設定 WebView2 的開發環境中的安裝或更新 WebView2 SDK

  • 更新應用程式的程式碼,以使用穩定的 API,而不是 (用於 COM) 的實驗性 API。 Stable API 將透過錯誤修正支援,但實驗性 API 將被取代,且無法在較新的 (發行前版本或發行) SDK 中使用。 將 API 升級為穩定版本後,該 API 的實驗版本支援處於已取代狀態的兩個發行前版本 SDK。 在後續發行前 SDK 版本中,可能會修改、移除或新增實驗性 API。

  • 一律使用功能偵測,以確保 Stable API 是在使用者的 WebView2 執行階段版本中實作。 請參閱下方的功能 偵測,以測試已安裝的執行階段是否支援最近新增的 API

  • 僅適用於 .NET 的注意事項:在發行前版本 WebView2 SDK 中,如果使用者的 WebView2 執行階段只有實驗性 API 實作且沒有穩定 API 實作,則 .NET Stable API 會回復到對應的實驗性 API。

將執行階段版本與 SDK 版本進行比對

在 Evergreen 發佈方法中,用戶端的 WebView2 執行階段會自動更新為可用的最新版本。 不過,使用者或 IT 系統管理員可能會選擇防止自動更新 WebView2 Runtime。 用戶端上產生的過期執行階段可能會導致使用來自最新 SDK 之新 API 的已更新 WebView2 應用程式發生相容性問題。

萬一用戶端無法更新 WebView2 Runtime,請確定您知道應用程式所需的 WebView2 Runtime 的最小組建編號。 若要檢視或取得最新的 WebView2 Runtime 版本,請參閱 Microsoft Edge WebView2 頁面中的下載 WebView2 Runtime,位於 developer.microsoft.com。 支援 SDK (組建 616 正式發行版本所需的最低執行階段版本) 比最新的執行階段還要舊。 最新的執行階段支援最新發行 SDK 中的所有 API。

若要檢查 SDK 的特定組建編號與執行階段或 Microsoft Edge 預覽通道之間的相容性,請參閱 WebView2 的版本資訊

功能偵測以測試已安裝的執行階段是否支援最近新增的 API

如果您的應用程式使用 Evergreen Runtime 而不是固定版本,您應該使用 QueryInterfacetry-catch來包裝對相對較新的 WebView2 API 的任何呼叫。 在某些情況下,用戶端的 Evergreen Runtime 不是最新組建,因此落後於 SDK 組建編號,因為管理員可能暫時隱藏了 WebView2 Runtime 的更新,或用戶端可能處於離線狀態。

當您使用最新版本的 WebView2 SDK 開發 WebView2 應用程式時,如果您使用最近新增的 API,您應該測試或「功能偵測」該 API 是否存在於用戶端安裝的 WebView2 執行階段中。 您的應用程式以程式設計方式測試 API 支援的方式取決於編碼平台:

.NET 和 WinUI,以及 WinRT

使用新增至較新版本 WebView2 SDK 的方法、屬性和事件時,使用 try/catch 並檢查 No such interface supported 是否有例外狀況。 此例外狀況可能表示用戶端的 WebView2 執行階段是不支援該 API 的舊版本。

Win32 C/C++

要求 DLL 匯出CreateCoreWebView2Environment並在任何CoreWebView2物件上執行QueryInterface時,請測試 的E_NOINTERFACE傳回值 。 該傳回值可能表示用戶端的 WebView2 執行階段是舊版本,不支援該介面。

如需檢查執行階段中是否存在特定 WebView2 API 的範例, try_query 請參閱 AppWindow.cpp。 此檔案將 WebView2 API 呼叫包裝在 中定義CheckFailure.hCHECK_FAILURE巨集函數中。

提供優良的後援

如果您的程式碼判斷用戶端安裝的 WebView2 執行階段中無法使用 API,您應該為相關聯的功能提供緩和的遞補,或通知使用者必須更新 WebView2 執行階段才能使用此功能。

另請參閱

Microsoft Edge 企業版文件:

下載:

GitHub: