【发布时间】:2018-09-29 23:58:01
【问题描述】:
在 Xamarin.Forms (UWP) 项目中,我有一个 WebView 控件,其 Source 是使用 HTML 字符串创建的,如下所示:
var webview = new Xamarin.Forms.WebView
{
Source = new HtmlWebViewSource
{
Html = "<html>....</html>"
}
};
HTML 包含在 <body> 中动态生成 HTML 的 JavaScript。这完美地呈现在屏幕上。这意味着 WebView 了解使用 JavaScript 创建的 DOM。太好了。
但现在我需要解析一些生成的 HTML,但我似乎只能访问作为 Source 传入的原始 HTML 字符串,而不是最终生成的 DOM。
有没有办法将 JavaScript 生成并被 WebView 理解的 DOM 转换为字符串,以便我可以解析(使用 HTML Agility Pack 或 AngleSharp 之类的库)并提取 HTML 的一些片段?这可以在 Xamarin.Forms 或 UWP(我的目标平台)中。
注意:完全公开(以防万一,并避免指责这是XY problem),我最终试图解决打印带有多个页面的WebView的问题UWP - 对此的研究得到了非常稀少的信息。我有一个适用于不是用 JavaScript 动态生成的 HTML 的解决方案 - 基本上我正在提取代表可打印页面的 HTML 部分,并将这些作为单独的页面添加为打印和打印预览。但如前所述,我似乎无法解析动态生成的内容。
【问题讨论】:
标签: xamarin webview xamarin.forms uwp xamarin.uwp