0

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

我的应用程序中有一个 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 字符串)中,还有 href(指向 Internet 中其他页面的链接)。如何在外部电话浏览器中打开链接,而不是在我的应用程序中

编辑 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;

4

1 回答 1

1

WebControl,不是WebViewNavigate您可以使用该方法导航到 URI 。在MSDN上查看更多信息。

编辑:

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

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

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

于 2013-07-08T13:41:22.387 回答