То, что вы хотите, это остановить рендеринг WebView.Вы можете установить источник WebView на случайную страницу или использовать это:
Интерфейс
public interface ICustomWebViewRenderer
{
void Pause();
void Resume();
}
Xamarin.Forms
CustomWebView:
public class CustomWebView : WebView
{
public ICustomWebViewRenderer Renderer;
public void Pause()
{
if (renderer != null) renderer.Pause();
}
public void Resume()
{
if (renderer != null) renderer.Resume();
}
}
Xamarin.Android
CustomWebViewViewRenderer:
public class CustomWebViewRenderer : WebViewRenderer, ICustomWebViewRenderer
{
Android.Webkit.WebView webView;
public CustomWebViewRenderer(Android.Content.Context context) : base(context) { }
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
{
base.OnElementChanged(e);
webView = Control;
if (e.OldElement != null)
(e.OldElement as CustomWebView).Renderer = null;
if (e.NewElement != null)
(e.NewElement as CustomWebView).Renderer = this;
}
public void Pause()
{
if (webView != null) webView.OnPause();
}
public void Resume()
{
if (webView != null) webView.OnResume();
}
}
Пример:
XAML
:
<local:CustomWebView x:Name="webView" Source="https://youtube.com" />
OnDisappearing
/ OnAppearing
:
protected override void OnDisappearing()
{
webView.Pause();
base.OnDisappearing();
}
protected override void OnAppearing()
{
base.OnAppearing();
webView.Resume();
}