Xamarin Forms混合Webview总是在浏览器中打开

3
1个回答

6

结果是URL会打开,但总是在新的浏览器中打开,而不是嵌入到我的ContentPage中,这不是我所期望的。

对于Android平台,它使用Android.Webkit.WebView作为本地控件,您可以从代码中看到:

if (Control == null) {
    var webView = new Android.Webkit.WebView (Forms.Context);
    webView.Settings.JavaScriptEnabled = true;
    SetNativeControl (webView);
}

对于Android.Webkit.WebView,如果你没有启用活动处理意图来查看网页,则它仅是一个简单的网页浏览器,但当你点击链接时,默认的Android浏览器会处理它。要启用它,可以在初始化WebView后的任何位置添加以下代码:webView.SetWebViewClient(new WebViewClient())。因此,你可以添加例如以下代码:

if (Control == null) {
    var webView = new Android.Webkit.WebView (Forms.Context);
    webView.SetWebViewClient(new WebViewClient());
    webView.Settings.JavaScriptEnabled = true;
    SetNativeControl (webView);
}

通常我们还可以子类化WebViewClient并重写ShouldOverrideUrlLoading,如果返回true,则表示该方法已处理URL,事件不应传播。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接