public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
 {
     if (_currentUri != null && _currentNavigation == navigation)
     {
         _webView.HandleNavigationFinished(_currentUri);
         _currentUri        = null;
         _currentNavigation = null;
     }
 }
        public override void OnPageFinished(AWebView view, string url)
        {
            if (view is null)
            {
                throw new ArgumentNullException(nameof(view));
            }
            if (string.IsNullOrEmpty(url))
            {
                throw new ArgumentException($"'{nameof(url)}' cannot be null or empty", nameof(url));
            }

            if (_webView == null && _renderer?.Element == null || url == WebViewRenderer.AssetBaseUrl)
            {
                return;
            }

            var source = new UrlWebViewSource {
                Url = url
            };

            _renderer.IgnoreSourceChanges = true;
            _renderer.ElementController.SetValueFromRenderer(Xamarin.Forms.WebView.SourceProperty, source);
            _renderer.IgnoreSourceChanges = false;

            var navigate = _navigationResult != WebNavigationResult.Failure || !url.Equals(_lastUrlNavigatedCancel, StringComparison.OrdinalIgnoreCase);

            _lastUrlNavigatedCancel = _navigationResult == WebNavigationResult.Cancel ? url : null;

            if (navigate)
            {
                var args = new WebNavigatedEventArgs(_renderer.GetCurrentWebNavigationEvent(), source, url, _navigationResult);
                _renderer.SyncNativeCookiesToElement(url);
                _renderer.ElementController.SendNavigated(args);
            }

            _renderer.UpdateCanGoBackForward();

            base.OnPageFinished(view, url);

            var uri = new Uri(url);

            _webView.HandleNavigationFinished(uri);
            if (uri.Scheme == "app")
            {
                RunBlazorStartupScripts(view);
            }
        }