从 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
所以我在我的 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;" });
我正在开发 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
所以我在我的 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;" });