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); } }