Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Xamarin.Forms WebView会增加Android应用程序存储数据的大小?_Android_Webview_Xamarin_Xamarin.forms - Fatal编程技术网

为什么Xamarin.Forms WebView会增加Android应用程序存储数据的大小?

为什么Xamarin.Forms WebView会增加Android应用程序存储数据的大小?,android,webview,xamarin,xamarin.forms,Android,Webview,Xamarin,Xamarin.forms,我有一个Xamarin.Forms应用程序,具有使用WebView的功能。它会打开一个简单的网页 每次我在其中打开一个网页,应用程序的存储数据大小都会增加。我在Android/设置/应用信息/存储上查看它。我的应用程序大小约为15MB,但打开一些页面后,它会变为50MB,以此类推。它在干什么?缓存?或如何禁用它?我假设它是WebView的缓存。不幸的是,表单WebView的缓存是不可配置的。因此,您必须编写自定义渲染器并在本机视图上禁用它。将此类添加到您的Android项目中 [assembly

我有一个Xamarin.Forms应用程序,具有使用
WebView
的功能。它会打开一个简单的网页


每次我在其中打开一个网页,应用程序的存储数据大小都会增加。我在Android/设置/应用信息/存储上查看它。我的应用程序大小约为15MB,但打开一些页面后,它会变为50MB,以此类推。它在干什么?缓存?或如何禁用它?

我假设它是
WebView
的缓存。不幸的是,表单WebView的缓存是不可配置的。因此,您必须编写自定义渲染器并在本机视图上禁用它。将此类添加到您的Android项目中

[assembly: ExportRenderer(typeof(WebView), typeof(NoChacheWebViewRenderer))]
namespace MyApp.Droid.Renderer
{

    public class NoChacheWebViewRenderer : WebViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (Control == null) return;

            Control.ClearCache(true);
            Control.Settings.SetAppCacheEnabled(false);
            Control.Settings.CacheMode = CacheModes.NoCache;
        }
    }
}