WPF WebView2 更改内容后读取同一页面

问题描述

我在 WebView2 中有一个问题我已经加载了一个页面,如果它的内容发生变化,我需要重新加载吗?

以前的项目使用 Webbrowser.DocumentCompleted,现在不使用 Webbrowser。

谢谢

解决方法

我建议您在 WPF 项目中尝试以下操作。

在您的窗口中 XAML

<WV:WebView2 x:Name="WebView"
                     Source="https://YOURURL" CoreWebView2InitializationCompleted="WebView_CoreWebView2InitializationCompleted" />

在你后面的代码中使用这样的东西。您需要等待 CoreWebView2 对象被创建。

        private void WebView_CoreWebView2InitializationCompleted(object sender,Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
        {
            if (e.IsSuccess) System.Diagnostics.Debug.Print("WebView is ready for native window.");
            this.WebView.CoreWebView2.NavigationStarting += CoreWebView2_NavigationStarting;
            this.WebView.CoreWebView2.NavigationCompleted += CoreWebView2_NavigationCompleted;
        }

        private void CoreWebView2_NavigationCompleted(object sender,Microsoft.Web.WebView2.Core.CoreWebView2NavigationCompletedEventArgs e)
        {
            Debug.Print("++++++++++++++++++++++++NavigationCompleted++++++++++++++++++++++++++++");
            Debug.Print("NavigationId: " + e.NavigationId.ToString());
            Debug.Print("URL: " + this.WebView.CoreWebView2.Source);
            Debug.Print("++++++++++++++++++++++++++++++++++++++++++++++++++++");
        }

        private void CoreWebView2_NavigationStarting(object sender,Microsoft.Web.WebView2.Core.CoreWebView2NavigationStartingEventArgs e)
        {
            Debug.Print("#######################NavigationStarting##############################");
            Debug.Print("NavigationId: " + e.NavigationId.ToString());
            Debug.Print("URL: " + e.Uri);
            Debug.Print("#####################################################");
        }