/// <inheritdoc /> protected override WebViewContainer CreatePlatformView() { TChromium.Initialize(); MauiApplication.Current.Terminated += (s, e) => TChromium.Shutdown(); return(new WebViewContainer(NativeParent !)); }
protected override void OnElementChanged(ElementChangedEventArgs <WebViewExtended> e) { if (e is null) { throw new ArgumentNullException(nameof(e)); } if (Control == null) { TChromium.Initialize(); Forms.Context.Terminated += (sender, arg) => TChromium.Shutdown(); SetNativeControl(new WebViewContainer(Forms.NativeParent)); _interceptRequestCallback = OnRequestInterceptCallback; NativeWebView.LoadStarted += OnLoadStarted; NativeWebView.LoadFinished += OnLoadFinished; NativeWebView.LoadError += OnLoadError; NativeWebView.AddJavaScriptMessageHandler("BlazorHandler", PostMessageFromJS); NativeWebView.SetInterceptRequestCallback(_interceptRequestCallback); NativeWebView.GetSettings().JavaScriptEnabled = true; } if (e.OldElement != null) { e.OldElement.SendMessageFromJSToDotNetRequested -= OnSendMessageFromJSToDotNetRequested; e.OldElement.EvalRequested -= OnEvalRequested; e.OldElement.GoBackRequested -= OnGoBackRequested; e.OldElement.GoForwardRequested -= OnGoForwardRequested; e.OldElement.ReloadRequested -= OnReloadRequested; } if (e.NewElement != null) { e.NewElement.EvalRequested += OnEvalRequested; e.NewElement.EvaluateJavaScriptRequested += OnEvaluateJavaScriptRequested; e.NewElement.GoForwardRequested += OnGoForwardRequested; e.NewElement.GoBackRequested += OnGoBackRequested; e.NewElement.ReloadRequested += OnReloadRequested; e.NewElement.SendMessageFromJSToDotNetRequested += OnSendMessageFromJSToDotNetRequested; Load(); } base.OnElementChanged(e); }