WebView和外部链接

本文关键字:链接 外部 WebView | 更新日期: 2023-09-27 18:21:24

我找不到这种情况的答案:

我的应用程序中有一个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(指向互联网中其他页面的链接)。如何在外部手机浏览器中打开链接,而不是在我的应用程序中

编辑2.0:

感谢托尼·佩特里纳我现在有下一个代码:

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.取消=真;

WebView和外部链接

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

编辑:

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

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

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