如何将文档加载到WebView?

时间:2013-10-14 15:36:52

标签: .net webview windows-runtime winrt-xaml webclient

我想这样做

Uri targetUri = new Uri(Address.Text);    
WebView1.Navigate(targetUri);
string content = WebView1.GetDocument(); //How can I get the document loaded from the target Uri?

我已经查看了MSDN中的API,但我没有看到任何值得注意的内容。

我想我可以挂钩FrameNavigationStarting,捕获Uri并通过WebClient发起一个单独的请求,但这似乎是解决一个简单问题的简单方法。

我一定错过了什么 - 请帮助。

1 个答案:

答案 0 :(得分:1)

Windows 8:

您可以通过以下方式获取WebView页面内容:

private void webView_LoadCompleted_1(object sender, NavigationEventArgs e)
{
    WebView webView = sender as WebView;

    string html = webView.InvokeScript(
        "eval",
        new string[] {"document.documentElement.outerHTML;"});

    // Here you can parse html ....
}

Windows 10更新:

InvokeScript()在Windows 10中抛出以下异常:

  

App1.exe中出现“System.NotImplementedException”类型的异常,但未在用户代码中处理

     

附加信息:未实施方法或操作。

改为使用InvokeScriptAsync()

XAML:

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

C#:

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);
}