WebView2 執行時使用與 Microsoft Edge 瀏覽器相同的程式模型。
WebView2 程式組是 WebView2 執行時程式的集合。 WebView2 程式組包括以下內容:
- 單個瀏覽器程式。
- 一個或多個渲染器(呈現器)程式。
- 其他幫助程式程式,例如 GPU 程式和音訊服務程式。
當WebView2應用程式使用WebView2功能時,WebView2程式組中程式的數量和存在可能會發生變化。(但是,WebView2程式組中只有一個特定的瀏覽器程式。)例如,從同一個 CoreWebView2Environment 市裡建立新的WebView2例項,但在源屬性中使用不同的域,通常會啟動一個新的渲染器程式。
渲染器程式的數量可能會根據以下情況而變化:
- 在WebView2執行時中使用站點隔離功能。請參見每幀渲染器程式-站點隔離。
- 在使用同一使用者資料資料夾的WebView2例項中呈現的不同斷開連線的源的數量。
控制何時建立這些額外程式的邏輯取決於Chromium體系結構,並且超出了 WebView2 執行時的範圍。
下面是在真實專案中測試的結果
(1)電腦關機,重新開機,未執行Edge瀏覽器,且未執行與WebView2相關的宿主應用程式。
後臺程式中有5個預設Edge程式在執行
(2)執行“建築工程施工圖AI審查系統”,其中紅色框內是使用WebView2元件載入的網頁應用
工作管理員中,程式“Zjgsgts.Sczj”下啟動了7個WebView2的子程式
其中某個第1個、第2個程式是渲染器程式,因為三維模型的渲染過程消耗的記憶體較多。第3、4、5、6、7是GPU程式或者其他幫助類程式程式。
而瀏覽器程式依然為5個,說明其中一個是 WebView2 程式組中的瀏覽器程式。
- runtimes 目錄
- 結構如下圖,包含一個WebView2執行時載入器元件 WebView2Loader.dll 。
- Zjgsgtsc.Sczj.exe.WebView2 目錄
- 結構圖下圖,裡面包含執行過程中其他的輔助配置資訊以及快取等資訊
WebView2 執行時程式集合中的所有程式都繫結到瀏覽器程式,而瀏覽器程式又與單個使用者資料資料夾相關聯。 如果應用程式使用多個使用者資料資料夾,將為每個使用者資料資料夾建立 WebView2 執行時程式的集合。
使用者資料資料夾可由多個應用程式共享,但請務必考慮對效能和管理的影響,如“管理使用者資料”資料夾中所述。
若要使用多個使用者資料資料夾,WebView2 應用程式需要建立不同的 CoreWebView2Environment 物件。 WebView2通過配置的物件為給定使用者資料資料夾建立CoreWebView2Environment例項。 每個 CoreWebView2Environment 物件都需要使用不同的使用者資料資料夾值進行配置。
為給定的使用者資料資料夾建立第一個WebView2例項時,將啟動與該使用者資料資料夾關聯的WebView2執行時程式集合的瀏覽器程式。所有其他程式都將在該瀏覽器程式的生命週期內進行管理。
CoreWebView2Environment代表一個使用者資料資料夾及其相關程式的集合。給定的渲染器程式與單個CoreWebView2例項不關聯,因為渲染器程式可以為使用同一使用者資料資料夾的多個CoreWebView2例項中的幀提供服務,具體取決於網站隔離。請參見每幀渲染器程式-站點隔離
若要對瀏覽器和渲染器程式中的崩潰和掛起做出反應,請使用 CoreWebView2 的 ProcessFailed 事件。
若要安全地關閉相關的瀏覽器和渲染器程式,請使用 CoreWebView2Controller 的 Close 方法。
若要開啟瀏覽器工作管理員,請呼叫 OpenTaskManagerWindows 方法。
其他事件,請參考 WebView2 API。