還記得微軟平臺老式的WebView控制元件嗎,它從屬于IE瀏覽器,隨著現代瀏覽器的升級換代,IE已經成為歷史,而微軟 Edge也放棄了自家的瀏覽器引擎,轉投到 Chromium的懷抱,是的,歷史車輪滾滾向前,隨著老浪的消亡,新生代 webview2 也隆重登場,其寄宿在Win32和Chromium之上,勢必成為windows桌面開發程式員的利器,
1. 脫胎于Edge(Chromium)內核

官方訊息: WebView2 控制元件使用 Microsoft Edge (Chromium) 作為呈現引擎在應用中顯示 Web 內容, WebView2 作為 WINDOWS UI 庫 3 (WinUI3) 的一部分提供,
利用WebView2,你可以方便的開發有關網頁內容的混合界面,

2 優勢和劣勢
-
基于web開發,有更好的生態,你懂得!
-
web開發允許你快速部署
-
完整的本機功能支持
-
microsoft官方支持!!
-
完美支持 windows7、8、10
-
支持 WebDriver ,因此也支持爬蟲、自動化測驗等等各類場景,
-
控制元件下載超快,相比Chrome,不需要梯子~~~
劣勢或不足: -
目前暫不支持windows以外的平臺
3. 開發平臺
- Win32 C/C++
- WPF 【.Net FrameWork 4.5+】
- WinForms 【.Net FrameWork 4.5+/.Net5】
- WinUI3 【Net5】
開發完幾乎windows全平臺覆寫運行,
4. WebView2組件開心下載
用過Chrome開發的都知道,下載不易,且行且珍惜,
微軟的WebView2,飛一般的體驗,

5. WebUi 專案初體驗
按照 說明,安裝好webui環境,
- Visual Studio 2019 版本 16.9 預覽版 +
- .NET 桌面開發 (安裝程式還會安裝 .NET 5)
- 通用 Windows 平臺開發
構建一個webui專案,

碼上代碼, 以下是界面配置:
<Window
x:Class="App1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<controls:WebView2 x:Name="MyWebView" Grid.Row="1" Grid.ColumnSpan="2"
Source="https://passport.csdn.net/account/login" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<TextBox Name="addressBar" Grid.Column="0"/>
<Button x:Name="myButton" Grid.Column="1" Click="myButton_Click">Go</Button>
</Grid>
</Window>
按鈕事件:
private async void myButton_Click(object sender, RoutedEventArgs e)
{
try
{
Uri targetUri = new Uri(addressBar.Text);
MyWebView.Source = targetUri;
}
catch (FormatException ex)
{
// Incorrect address entered.
}
}
6. 運行界面
由于下載插件分X86和X64,運行時需要匹配,如果有問題,可以切換下看看,
一個Edge內核的瀏覽器搞定了~~~

7 .執行Js
作為瀏覽器控制元件,必然需要支持js,這樣可以方便干…事了,
嗯,以下是面向XXX編程必備小技巧,請妥善收藏,
document.querySelectorAll('.main-select > ul >li')[1].children[0].click()
document.querySelector('#all').value = '作者1'
document.querySelector('#password-number').value = '密碼123'
document.querySelector('[data-type=account]').click()
把以上可以保存為js檔案,然后我們執行它,
var dir = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory;
var file = Path.Combine(dir.ToString(), "test.js");
try
{
var text = File.ReadAllText(file);
//Uri targetUri = new Uri(addressBar.Text);
//MyWebView.Source = targetUri;
await MyWebView.CoreWebView2.ExecuteScriptAsync(text);
}
catch (FormatException ex)
{
// Incorrect address entered.
}
嗯嗯,來個簡單辦自動登陸~~~
8. 小結
chrome無頭瀏覽器用煩了,可以換換 Edge,畢竟是微軟的親兒子!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286911.html
標籤:其他
