如何处理 WebView2 的导航完成事件?
时间: 2024-10-10 22:02:41 浏览: 132
处理 C# WebView2 的导航完成事件通常是在 Web 组件的 CoreWebView2 类上订阅 `CoreWebView2.NavigateCompleted` 事件。当浏览器完成了从一个 URL 到另一个 URL 的导航后,这个事件会被触发。下面是一个简单的示例:
首先,在窗口加载完成后,注册事件处理程序:
```csharp
myWebView.CoreWebView2.NavigationCompleted += CoreWebView2_NavigationCompleted;
private async void CoreWebView2_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e)
{
if (e.IsSuccess)
{
// 页面加载成功,这里可以获取新URL、检查状态等操作
string url = await e.UriForNewDocument.GetStringAsync();
Console.WriteLine($"导航到:{url}");
}
else
{
// 处理导航失败的情况,例如错误代码或取消请求
Console.WriteLine($"导航失败,错误码:{e.ErrorCode}");
}
}
```
确保在关闭或销毁 WebView2 之前取消事件监听:
```csharp
// 窗口关闭或关闭 WebView 时移除事件处理
myWindow.Closing += (_, _) => myWebView.CoreWebView2.NavigationCompleted -= CoreWebView2_NavigationCompleted;
```
阅读全文