Я пытаюсь создать универсальное rss-приложение для Windows 10, которое может загрузить содержимое страницы полной статьи для автономной консультации.Загрузить содержимое WebView в приложении WInRT
Так, проведя много времени на 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();
Однако это решение не работает на некоторых веб-странице, где содержание динамически называется.
Таким образом, альтернатива, которая остается, по-видимому, такова: загрузите веб-страницу в элемент управления WebView WinRT и каким-то образом скопируйте и вставьте визуализированный текст. НО, Webview не реализует какой-либо метод копирования/вставки или аналогичный, поэтому нет никакого способа сделать это легко.
И, наконец, я нашел это сообщение в stackoverflow (Copying the content from a WebView under WinRT), которое, похоже, имеет дело с той же самой точной проблемой, что и моя, со следующим решением;
Используйте метод InvokeScript из веб-обозревателя для копирования и вставки содержимого с помощью функции javascript.
В нем говорится: «Во-первых, эта функция javascript должна существовать в 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);
Но это не говорит , как вводить яваскрипт функции, если она не существует на странице я нахожусь Погрузка?
Спасибо, это то, что я искал! Однако: на некоторых веб-сайтах он не принесет мне рендеринг веб-страницы, а только некоторый код html/javascript, который не содержит текст, который я хочу отобразить. Я пытаюсь создать rss-читатель новостей, который может сохранить полную статью для автономного просмотра. Поэтому единственным вариантом, который работал, было использование eval в документе document.documentElement.outerText, а не в документе document.documentElement.outerHTML. К сожалению, это приносит мне много бесполезного текста из меню, комментариев и т. Д. ... – Marc