关于如何从Xamarin形式的WebView获取内部html源代码:如何从Xamarin形式的WebView获取内部html源代码-C#

How to get inner html source from WebView in Xamarin Form - C#

我正在使用WebView加载我的身份验证网页。成功通过身份验证后,我需要从html源内容中获取一些值。任何人都可以从WebView读取源html吗?。

1
2
3
var webView= new WebView {
  Source ="https://www.MyLoginSite.com"
};

我已经检查了该线程:Xamarin:如何从WebView中的页面获取HTML?

看到上面的线程后,我写了下面的代码。

1
webView.Eval("document.body.innerHTML")

但是Eval是void函数,所以我如何在C#代码背后读取值,或者有没有简单的替代方法来将整个html内容获取为字符串?


这是我的代码:

1
2
3
4
 private async Task<string> GetHtml()
        {
            return await LoginWebViewItem.EvaluateJavaScriptAsync("document.body.innerHTML");
        }

然后我从我的方法中调用它:

1
string AllHtml = await GetHtml();


您将需要使用Xamarin-Forms-Labs中的HybridWebView并注册一个回调。文档在这里。

在您的C#代码中注册一个回调:

1
this.hybridWebView.RegisterCallback("dataCallback", t => System.Diagnostics.Debug.WriteLine(t));

然后评估一些调用回调的JS代码

1
this.hybridWebView.Eval("Native("dataCallback", document.body.innerHTML);");