WebView和外部链接

时间:2013-07-08 12:35:26

标签: c# wpf windows-phone-7 webview windows-phone-8

我无法找到这种情况的答案:

我的应用程序中有一个WebView,我加载了从服务器获取的HTML - 这工作正常。但是像所有HTML页面一样,他们在其他网站上有链接。如何在手机浏览器中打开WebView打开外部链接?

这是我的回调:

<div style="font-weight:bold;"><p style="text-align: justify;">No 6. līdz 17. jūlijam Kazaņā, Krievijā notieko&scaron;ajā XXVII Pasaules vasaras Universiādē Latvijas komandu pārstāvēs 23 Rīgas Tehniskās universitātes (RTU) studenti, kas būs lielākā pārstāvniecība starp Latvijas augstskolām.</p></div><div><p style="text-align: justify;">Latviju vērienīgajā sporta pasākumā &scaron;ogad pārstāvēs rekordliels dalībnieku skaits -120 sportisti no dažādām Latvijas augstskolām. Kopumā pasākumā piedalīsies 162 valstu komandas ar 10 442 sportistiem, sacen&scaron;oties 351 sporta veidā. Tas ir vairāk nekā Londonas Olimpiskajās spēlēs izdalītie 302 medaļu komplekti.</p><p>http://www.google.lv</p>

我这样做:

string callback = HttpRequest...
WebView.NavigateToString(callback );

在我的回调页面上是否有某种属性可以打开外部链接?

修改

我的页面上有这个:

<phone:WebBrowser Name="ArticleContent" />

在C#中我正在做:

ArticleContent.NavigateToString(callback);

在我的回调(HTML字符串)中,还有hrefs(指向互联网中其他页面的链接)。 如何在外部电话浏览器中打开链接,不在我的应用程序

EDIT 2.0:

感谢Toni Petrina 我现在有下一个代码:

private void ArticleContent_Navigating(object sender, NavigatingEventArgs e)
    {
        WebBrowserTask webBrowserTask = new WebBrowserTask();
        //webBrowserTask.Uri = new Uri(e.Uri.ToString(), UriKind.Absolute);
        //webBrowserTask.Show();
        webBrowserTask.URL = e.Uri.ToString();
        webBrowserTask.Show();
    }

它打开手机浏览器并导航到页面 - 这部分没问题。 当我使用后退按钮返回我的应用程序并单击WebView中的另一个链接时,它会在WebView中打开页面 - 怎么样?(这显示在2或3或4上点击链接,所有随机的时间)。

编辑3.0:

忘记取消活动: e.Cancel = true;

1 个答案:

答案 0 :(得分:1)

WebControl,而不是WebView。您可以使用Navigate方法导航到URI。有关MSDN的更多信息,请参阅。

编辑:

要在外部(内置)浏览器中打开链接,请使用[WebBrowserTask][2]。像这样使用它:

var task = new WebBrowserTask
{
    task.Uri = new Uri(...)
}
task.Show();

您可以通过[WebBrowser.Navigating][3]事件捕获传出链接导航。只需取消当前导航并从上面调用任务。