using Android.Annotation; using Android.App; using Android.Content; using Android.Webkit; using Demo.Droid.Controls; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; [assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(MyWebViewRenderer))] namespace Demo.Droid.Controls { public class MyWebViewRenderer : WebViewRenderer { private Activity mContext; public MyWebViewRenderer(Context context) : base(context) { this.mContext = context as Activity; } protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); Control.SetWebChromeClient(new MyWebClient(mContext)); } private class MyWebClient : WebChromeClient { private Activity mContext; public MyWebClient(Activity context) { this.mContext = context; } [TargetApi(Value = 21)] public override void OnPermissionRequest(PermissionRequest request) { mContext.RunOnUiThread(() => { request.Grant(request.GetResources()); }); } } } }