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š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ā š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š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.取消=真;
它是WebControl
,而不是WebView
。您可以使用Navigate
方法导航到URI。请参阅MSDN上的更多信息。
编辑:
要在外部(内置)浏览器中打开链接,请使用[WebBrowserTask][2]
。这样使用:
var task = new WebBrowserTask
{
task.Uri = new Uri(...)
}
task.Show();
您可以通过[WebBrowser.Navigating][3]
事件捕获传出链接导航。只需取消当前导航并从上面调用任务。