Exemple #1
0
 public WKWebView CreateWebView(
     WKWebView webView,
     WKWebViewConfiguration configuration,
     WKNavigationAction navigationAction,
     WKWindowFeatures windowFeatures)
 {
     UIApplication.SharedApplication.OpenUrl(navigationAction.Request.Url);
     return(null);
 }
Exemple #2
0
        public override WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration,
                                                WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
        {
            if (navigationAction.TargetFrame == null)
            {
                var url   = navigationAction.Request.Url;
                var descr = url.Description.ToLower();
                if (descr.Contains("http://") ||
                    descr.Contains("https://") ||
                    descr.Contains("mailto:"))
                {
                    UIApplication.SharedApplication.OpenUrl(url);
                }
            }

            return(null);
        }
            public override WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
            {
                if (this.Log().IsEnabled(Microsoft.Extensions.Logging.LogLevel.Debug))
                {
                    this.Log().Debug($"CreateWebView: TargetRequest[{navigationAction?.TargetFrame?.Request?.Url?.ToUri()}] Request:[{navigationAction.Request?.Url?.ToUri()}]");
                }

                return(_createWebView?.Invoke(webView, configuration, navigationAction, windowFeatures));
            }
        private WKWebView OnCreateWebView(WKWebView owner, WKWebViewConfiguration configuration, WKNavigationAction action, WKWindowFeatures windowFeatures)
        {
            Uri target;

            if (action?.TargetFrame != null)
            {
                target = action?.TargetFrame.Request?.Url?.ToUri();
            }
            else
            {
                target = action.Request.Url.ToUri();
            }

            var args = new WebViewNewWindowRequestedEventArgs(
                referrer: action.SourceFrame?.Request?.Url?.ToUri(),
                uri: target
                );

            _parentWebView.OnNewWindowRequested(args);

            if (args.Handled)
            {
                return(null);
            }
            else
            {
                var navigationArgs = new WebViewNavigationStartingEventArgs()
                {
                    Cancel = false,
                    Uri    = target
                };

                _parentWebView.OnNavigationStarting(navigationArgs);

                if (!navigationArgs.Cancel)
                {
                    if (UIKit.UIApplication.SharedApplication.CanOpenUrl(target))
                    {
                        UIKit.UIApplication.SharedApplication.OpenUrl(target);
                        _parentWebView.OnComplete(target, isSuccessful: true, status: WebErrorStatus.Unknown);
                    }
                    else
                    {
                        _parentWebView.OnNavigationFailed(new WebViewNavigationFailedEventArgs()
                        {
                            Uri            = target,
                            WebErrorStatus = WebErrorStatus.Unknown
                        });
                    }
                }
            }

            return(null);
        }
 public WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
 {
     try
     {
         if (navigationAction.TargetFrame == null)
         {
             if (UIApplication.SharedApplication.KeyWindow.RootViewController is UIViewController parentViewController && navigationAction.Request.Url is NSUrl url)
             {
                 var safariView = new SFSafariViewController(url);
                 parentViewController.PresentViewController(safariView, true, null);
                 safariView.Delegate = this;
             }
         }
     }
     catch { }
     return(null);
 }
        public virtual WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
        {
            // First option - but this is not suitable for me
            //UIApplication.SharedApplication.OpenUrl(navigationAction.Request.Url);
            //return null;
            // end first option

            // Second option - but it cause some other problem to me
            var request = new NSMutableUrlRequest(navigationAction.Request.Url);

            Control.LoadRequest(request);
            return(null);
            // end Second option
        }