支援平台:Win32、Windows Forms、WinUI、WPF。
WebView2 執行環境使用與 Microsoft Edge 瀏覽器相同的程序模型。 此瀏覽器流程模型在瀏覽器 架構 中有所描述,內容為《 現代網頁瀏覽器 (第一部分) 。
WebView2 執行時中的程序
WebView2 程序群組是一組 WebView2 執行時程序的集合。 WebView2 的程序群組包含以下內容:
- 一個瀏覽器的流程。
- 一個或多個渲染器處理程序。
- 其他輔助程序,如 GPU 程序與音訊服務程序。
隨著 WebView2 應用程式使用 WebView2 功能,程序群組中的程序數量與存在程度可能會改變。 (然而,WebView2 程序群組中只有一個特定的瀏覽器程序。) 例如,從同 CoreWebView2Environment一個 建立一個新的 WebView2 實例,但屬性中有不同的網域 Source ,通常會啟動新的渲染程序。
渲染程序的數量會根據以下條件而有所不同:
在 WebView2 執行時使用 站點隔離 功能。 請參見 每幀渲染器流程 - 站點隔離。
在使用相同使用者資料資料夾的 WebView2 實例中,渲染出的多個不同且不相連的起點數量。
控制這些額外程序何時建立的邏輯依賴於 Chromium 架構,超出 WebView2 執行環境的範圍。
WebView2 執行時程序與使用者資料資料夾
WebView2 執行時程序集合中的所有程序都綁定於瀏覽器程序,而瀏覽器程序又與單一使用者資料資料夾相關聯。 若應用程式使用多個使用者資料資料夾,則會為每個使用者資料資料夾建立一組 WebView2 執行時程序。
使用者資料資料夾可以被多個應用程式共用,但請務必考慮其對效能與管理的影響,詳見「管理使用者資料資料夾」。
為了使用多個使用者資料資料夾,WebView2 應用程式需要建立不同的 CoreWebView2Environment 物件。 透過已設定CoreWebView2Environment的物件,為特定使用者資料資料夾建立實WebView2例。 每個 CoreWebView2Environment 物件都需要設定不同的使用者資料資料夾值。
當為特定使用者資料資料夾建立第一個 WebView2 實例時,該資料夾所關聯的 WebView2 執行時程序集合會啟動瀏覽器程序。 所有額外的程序將依該瀏覽器程序的生命週期來管理。
代表 CoreWebView2Environment 使用者資料資料夾及其相關的程序集合。 特定的渲染程序不會與單一 CoreWebView2 實例相關聯,因為該渲染程序可以在多個 CoreWebView2 使用相同使用者資料資料夾的實例中提供框架,視網站隔離而定。 請參見 每幀渲染器流程 - 站點隔離。
多重環境物件
如果你建立多個 CoreWebView2Environment 設定方式相同 (包含共用相同使用者資料資料夾) 的物件,它們會代表相同的使用者資料資料夾及相同的相關程序集合。 使用這些 CoreWebView2Environment 物件中的任意一個,建立 CoreWebView2 一個共用的使用者資料資料夾及相關程序集合。
如果你嘗試用另一個CoreWebView2Environment使用者資料資料夾建立CoreWebView2Environment一個資料夾,而另一個資料夾已經在用這個資料夾,且你沒有把兩個CoreWebView2Environment物件設定一樣,例如它們是用不同CoreWebView2EnvironmentOptions.Language值建立的,那麼第二個CoreWebView2Environment資料夾就會無法建立WebView2物件。 這對於 CoreWebView2Environment 處於相同流程或不同流程的物件都成立。
處理流程事件與壽命
要回應瀏覽器和渲染程序中的當機與當機,請使用 ProcessFailed 事件 CoreWebView2。
若要安全關閉相關的瀏覽器與渲染程序,請使用Close。CoreWebView2Controller
要開啟 瀏覽器工作管理員,請呼叫該 OpenTaskManagerWindow 方法。
所有與 WebView2 瀏覽器程序相關的程序都會顯示,包括它們相關的用途。
另請參閱
- 以下是現代網頁瀏覽器 (第一部分) ——WebView2 執行時和 Microsoft Edge 瀏覽器所使用的瀏覽器程序模型。
- 開始使用 WebView2
- WebView2Samples 儲存庫 ——WebView2 功能的完整範例。
- WebView2 API 參考