WebView2 - NavigateToString 方法 returns "Operation Cancelled" 错误

WebView2 - NavigateToString method returns "Operation Cancelled" error

NavigateToString 方法 returns 作为参数提供的任何 html 字符串的错误。

NavigationCompletedreturnsOperation Canceled 的事件处理程序。很可能初始化不正确或不完整,但确定是什么。

能否请您提供一个有效的 C# 示例,以便我学习如何使用 webview2?

async void InitializeAsync()
{
        var env = await   Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: cacheDirectory);
        await webView21.EnsureCoreWebView2Async(env);
        webView21.Dock = System.Windows.Forms.DockStyle.Right; //Fill
        webView21.NavigationStarting += EnsureHttps;
        webView21.NavigationCompleted += WebView21_NavigationCompleted;
  } 

...
...
webView21.CoreWebView2.NavigateToString("<html>HELLO!</html>"); //Fails
webView21.CoreWebView2.Navigate("https://www.google.com"); //Works

既然你可以调用 Navigate("https://www.google.com") 但不能调用 NavigateToString("<html>HELLO!</html>") 问题一定出在差异上。

这很可能是由您的 EnsureHttps 方法引起的。

当您使用 NavigateToString 时,它不是 https!新页面的url为about:blank!

所以如果 url 是 about:blank.

,那么您应该在 EnsureHttps 方法中检查而不是 redirect/change url