尝试从 UWP WebView 获取 html 时出现异常(HRESULT 异常:0x80020101)

Posted

技术标签:

【中文标题】尝试从 UWP WebView 获取 html 时出现异常(HRESULT 异常:0x80020101)【英文标题】:Getting Exception when try to get html from UWP WebView (Exception from HRESULT: 0x80020101) 【发布时间】:2021-09-13 16:31:38 【问题描述】:

我需要从 WebView 获取 html。在网上找到如下代码:

public MainPage()

    this.InitializeComponent();
    WebView wb = new WebView();
    wb.Navigate(new Uri(@"https://www.microsoft.com/"));
    Thread.Sleep(1500);
    F(wb);

public async void F(WebView webView)

    var siteHtML = await webView.InvokeScriptAsync("eval", new string[]  "document.documentElement.outerHTML;" );

不幸的是,InvokeScriptAsync 方法返回错误,我根本不懂脚本。你有其他方法从 WebView 获取 html,或者你可以修复我的代码吗?

【问题讨论】:

【参考方案1】:

尝试从 UWP WebView 获取 html 时出现异常(HRESULT 异常:0x80020101)

问题是WebView没有导航完成,这种情况可以在NavigationCompleted事件中调用eval函数。在测试过程中,它运行良好。

wb.Navigate(new Uri(@"https://www.microsoft.com/"));
wb.NavigationCompleted += Wb_NavigationCompleted;

.....

private async void Wb_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)

    var siteHtML = await wb.InvokeScriptAsync("eval", new string[]  "document.documentElement.outerHTML;" );

【讨论】:

以上是关于尝试从 UWP WebView 获取 html 时出现异常(HRESULT 异常:0x80020101)的主要内容,如果未能解决你的问题,请参考以下文章

UWP webview的缓存清理问题

为啥 UWP WebView AddWebAllowedObject 不起作用?

UWP 拦截 Webview POST 请求并获取内容

Xamarin 移动应用开发指南 - 如何在 iOS、Android 和 UWP 的 WebView 中加载本地网站 (HTML/CSS/JS ..) [重复]

使用 C# 到 JavaScript 的 UWP WebView 中 JSON 的问题无法正确读取

如何在 UWP 应用的 XAML Webview 中添加对 HTML5 通知的支持?