2024-06-03

[C#] 簡單使用 Microsoft Edge WebView2 在 WinForms 中的應用

好久沒寫 WinForms 了,最近因為有一些比較麻煩的需求,所以必須使用 WinForms 來解決問題會比較簡單。

這次的需求是要操控網頁來取得一些資料,經過評估,決定使用 WinForms。然而,想到 WebView 用的是舊版的 IE 核心,本來打算使用第三方的 Chromium 套件,但查了之後發現竟然有 Microsoft 官方推出的 Edge WebView2。



結論是,使用 WebView2 需要注意一些細節,但整體來說與以前的傳統 WebView 相比,有著天壤之別。


打開 NuGet 搜尋 WebView2 並安裝。

https://www.nuget.org/packages/microsoft.web.webview2

安裝後編譯一下,左邊就會出現 WebView2 Windows Forms Control。


所以,我們必須先呼叫 webView21.EnsureCoreWebView2Async(),然後等待初始化完成後才能進行 Navigate。


以下是原始碼示例:



而且還可以叫出開發者的 console 舒服


reference:

https://learn.microsoft.com/en-us/microsoft-edge/webview2/

https://learn.microsoft.com/zh-tw/microsoft-edge/webview2/get-started/winforms