如何在iOS和Android的Xamarin交叉图形应用程序中打开浏览器中的WebView链接

时间:2018-02-08 16:45:21

标签: c# xamarin.forms cross-platform

我是Xamarin的新手, 我正在开发Xamarin Cross-Plotform应用程序,它适用于iOS和Android。

我的可移植类库项目中有一个View,这个视图支持iOS和Android,因为我正在使用WebView,我正在使用外部Html页面加载WebView, 在这里我有一个问题就像在外部Html页面中我们有一些超链接,当我们点击该超链接时它会在应用程序中打开但我需要这个应该用浏览器打开。

我在可移植类库项目中加载我的webview,如下所示

mywebview.Source = new UrlWebViewSource { Url = myurl };

任何人都可以帮我解决如何在浏览器中打开iOS和Android的webview超链接。

我尝试使用以下代码块,但它无法正常工作

private void mywebview_Navigated(object sender, WebNavigatedEventArgs e)
    {
        string jscall = "var d = document.getElementsByTagName('a'); for (var i = 0; i < d.length; i++) { if (d[i].getAttribute('target') == '_blank') { if(d[i].href.includes('?')) {d[i].href = d[i].href + '&target=blank';} else {d[i].href = d[i].href + '?target=blank';}}}";
        Loadfromweb.Eval(jscall);
    }
    private void mywebview_Navigating(object sender, WebNavigatingEventArgs e)
    {
        if (e.Url.ToLower().Contains("target=blank"))
        {
            var uri = new Uri(e.Url);
            Device.OpenUri(uri);
            e.Cancel = true;
        }
        else
        {
            e.Cancel = false;
        }
    }

0 个答案:

没有答案