using Ambassador.Mobile.Android.CustomRenderers; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; using Android.Content; using static Android.Webkit.WebView; [assembly: ExportRenderer(typeof(WebView), typeof(DroidWebViewRenderer))] namespace Ambassador.Mobile.Android.CustomRenderers { public class DroidWebViewRenderer : WebViewRenderer { public DroidWebViewRenderer(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (e.NewElement != null) { // Open this line to activate the workaround for target = _blank //Control.Settings.SetSupportMultipleWindows(true); global::Android.Webkit.WebView.SetWebContentsDebuggingEnabled(true); Control.SetWebChromeClient(new MyWebChormeClient()); } } } internal class MyWebChormeClient : global::Android.Webkit.WebChromeClient { public override bool OnCreateWindow(global::Android.Webkit.WebView view, bool isDialog, bool isUserGesture, Message resultMsg) { HitTestResult TestResult = view.GetHitTestResult(); string data = TestResult.Extra; Context context = view.Context; var uri = global::Android.Net.Uri.Parse(data); Intent browserIntent = new Intent(Intent.ActionView, uri); context.StartActivity(browserIntent); return false; } } }