【问题标题】:Cache and Save All Image Conten In WebView From Url And Load It从 Url 缓存并保存 WebView 中的所有图像内容并加载它
【发布时间】:2016-05-16 04:48:33
【问题描述】:

我有在 Android 中运行的 Web 应用程序。我可以缓存我的网页,所以如果用户没有互联网连接,他仍然可以从缓存中访问网页。 但它只在用户没有互联网连接时运行

现在,为了优化我的应用程序,当用户有互联网连接时,我想缓存在WebView 中显示的所有图像并将其存储在本地/缓存它,当用户打开一个页面时我已经缓存了相同的 src 图像,它从本地加载,而不是再次从 Web 加载。或者可能不是图片,而是访问过的html页面缓存了它,当用户再次返回url页面时,Webview从本地加载,而不是从互联网加载。

我已经搜索了两天的代码,但仍然没有找到解决方案。

感谢您的帮助。

【问题讨论】:

    标签: android image caching webview


    【解决方案1】:

    试试这个

    private void enableWVCache() {
    
          webView.getSettings().setDomStorageEnabled(true);
    
          // Set cache size to 8 mb by default. should be more than enough
          webView.getSettings().setAppCacheMaxSize(1024*1024*8);
    
          File dir = getCacheDir();
          if (!dir.exists()) {
                dir.mkdirs();
             }
          webView.getSettings().setAppCachePath(dir.getPath());
          webView.getSettings().setAllowFileAccess(true);
          webView.getSettings().setAppCacheEnabled(true);
    
          webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
    }
    

    然后

    if ( !isNetworkAvailable() ) { // loading offline
    webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
    

    }

    isNetworkAvailable() 方法检查活动的网络连接:

    private boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
    

    最后别忘了给你的AndroidManifest.xml添加以下三个权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    

    【讨论】:

    • 谢谢,但它会缓存所有页面吗?我只想缓存图片。
    • @MukhlisSaputro 它缓存了整个页面。
    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2018-07-18
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多