gpt4 book ai didi

javascript - 在 WInRT 应用程序中下载 WebView 内容

转载 作者:行者123 更新时间:2023-12-03 08:10:03 25 4
gpt4 key购买 nike

我正在尝试构建一个适用于 Windows 10 的通用 RSS 应用程序,该应用程序可以下载完整文章页面的内容以进行离线咨询。

在 stackoverflow 上花了很多时间后,我找到了一些代码:

HttpClientHandler handler = new HttpClientHandler { UseDefaultCredentials = true, AllowAutoRedirect = true };
HttpClient client = new HttpClient(handler);
HttpResponseMessage response = await client.GetAsync(ni.Url);
response.EnsureSuccessStatusCode();
string html = await response.Content.ReadAsStringAsync();

但是,此解决方案在某些动态调用内容的网页上不起作用。

因此,剩下的替代方案似乎是:将网页加载到 WinRT 的 Webview 控件中,并以某种方式复制并粘贴渲染的文本。但是,Webview 没有实现任何复制/粘贴方法或类似方法,因此无法轻松实现。

最后我在 stackoverflow ( Copying the content from a WebView under WinRT ) 上找到了这篇文章,它似乎正在使用以下解决方案处理与我相同的问题;

使用 Web View 中的 InvokeScript 方法通过 JavaScript 函数复制和粘贴内容。

它说:“首先,这个 javascript 函数必须存在于 webview 中加载的 HTML 中。”

function select_body() {
var range = document.body.createTextRange();
range.select();
}

然后“使用以下代码:”

// call the select_body function to select the body of our document
MyWebView.InvokeScript("select_body", null);

// capture a DataPackage object
DataPackage p = await MyWebView.CaptureSelectedContentToDataPackageAsync();

// extract the RTF content from the DataPackage
string RTF = await p.GetView().GetRtfAsync();

// SetText of the RichEditBox to our RTF string
MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.FormatRtf, RTF);

但它没有说的是如果我正在加载的页面中不存在javascript函数,如何注入(inject)

最佳答案

如果您有这样的 WebView:

<WebView Source="http://kiewic.com" LoadCompleted="WebView_LoadCompleted"></WebView>

结合使用InvokeScriptAsynceval()来获取文档内容:

private async void WebView_LoadCompleted(object sender, NavigationEventArgs e)
{
WebView webView = sender as WebView;
string html = await webView.InvokeScriptAsync(
"eval",
new string[] { "document.documentElement.outerHTML;" });

// TODO: Do something with the html ...
System.Diagnostics.Debug.WriteLine(html);
}

关于javascript - 在 WInRT 应用程序中下载 WebView 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34182879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com