public override async void OnPageFinished(Android.Webkit.WebView view, string url) { if (_reference == null || !_reference.TryGetTarget(out var renderer)) { return; } if (renderer.Element == null || !renderer.Element.Navigating) { return; } renderer.Element.Navigating = false; renderer.Element.HandleNavigationCompleted(url); await renderer.OnJavascriptInjectionRequest(HybridWebViewControl.InjectedFunction); if (renderer.Element.EnableGlobalCallbacks) { foreach (var function in HybridWebViewControl.GlobalRegisteredCallbacks.ToList()) { await renderer.OnJavascriptInjectionRequest(HybridWebViewControl.GenerateFunctionScript(function.Key)); } } foreach (var function in renderer.Element.LocalRegisteredCallbacks.ToList()) { await renderer.OnJavascriptInjectionRequest(HybridWebViewControl.GenerateFunctionScript(function.Key)); } renderer.Element.CanGoBack = view.CanGoBack(); renderer.Element.CanGoForward = view.CanGoForward(); renderer.Element.HandleContentLoaded(); }
internal static void UpdateCanGoBackForward(this AWebView platformWebView, IWebView webView) { if (webView == null || platformWebView == null) { return; } webView.CanGoBack = platformWebView.CanGoBack(); webView.CanGoForward = platformWebView.CanGoForward(); }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { if (_viewRenderer == null || _viewRenderer.Element == null) { return; } ((IWebViewController)_viewRenderer.Element).CanGoBack = view.CanGoBack(); ((IWebViewController)_viewRenderer.Element).CanGoForward = view.CanGoForward(); base.OnPageFinished(view, url); view.EvaluateJavascript(_javascript, null); }
public static void UpdateGoForward(this AWebView platformWebView, IWebView webView) { if (platformWebView == null) { return; } if (platformWebView.CanGoForward()) { platformWebView.GoForward(); } platformWebView.UpdateCanGoBackForward(webView); }
public async override void OnPageFinished(Android.Webkit.WebView view, string url) { if (Reference == null || !Reference.TryGetTarget(out FormsWebViewRenderer renderer)) { return; } if (renderer.Element == null || (view as WebViewEx).Disposed) { return; } // Add Injection Function await renderer.OnJavascriptInjectionRequest(FormsWebView.InjectedFunction); if (renderer?.Element == null || (view as WebViewEx).Disposed) { return; } // Add Global Callbacks if (renderer.Element.EnableGlobalCallbacks) { foreach (var callback in FormsWebView.GlobalRegisteredCallbacks) { await renderer.OnJavascriptInjectionRequest(FormsWebView.GenerateFunctionScript(callback.Key)); } } // Add Local Callbacks foreach (var callback in renderer.Element.LocalRegisteredCallbacks) { await renderer.OnJavascriptInjectionRequest(FormsWebView.GenerateFunctionScript(callback.Key)); } if (renderer?.Element == null || (view as WebViewEx).Disposed) { return; } renderer.Element.CanGoBack = view.CanGoBack(); renderer.Element.CanGoForward = view.CanGoForward(); renderer.Element.Navigating = false; renderer.Element.HandleNavigationCompleted(url); renderer.Element.HandleContentLoaded(); }