从 windows phone 8.1 的网络视图页面下载 html 内容

download html content from a page in webview for windows phone 8.1

我正在开发 windows phone 8.1 运行时通用应用程序并使用 webview 转到页面。我希望能够将页面上的 HTML 下载到一个字符串中,以便我可以在我的应用程序中使用 t。我已使用这些链接寻求帮助,但无济于事:

http://codesnack.com/blog/2012/01/05/metro-webview-source-workarounds/

Retrieve Inner Text from WebView HTML in Windows/Windows Phone 8.1

https://social.msdn.microsoft.com/Forums/windowsapps/en-US/331fa2db-3efa-40e2-af08-ddebe9424869/how-to-get-html-source-information-of-webview-in-windows-phone-81?forum=winappswithcsharp

所以我在我的 NavigationCompleted 事件处理程序中添加了这一行

      string pageContent = webBrowser1.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" }).ToString();

但是当我单步执行代码时,我得到的只是 System.__ComObject 作为 pageContent 的值。

知道这里发生了什么吗?

谢谢!

InvokeScriptAsync return是 IAsyncOperation,不是字符串。如果你在上面调用 ToString() ,你只会得到对象的类型 (System.__ComObject).

您几乎总是希望 "await" 这样的异步函数。这将处理 returned 操作,等待它完成,然后 return 它的类型。

如果您将代码更改为以下内容,那么 pageContent 将从您的评估函数中获取 HTML:

string pageContent = await webBrowser1.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });