rah*_*esh 8 android caching android-webview android-4.4-kitkat
我一直致力于一个从Web缓存图像的应用程序,即使在用户离线时也会显示它.在Android 4.4问世之前,这种方法运行良好.现在,我看到的只是一个"无法加载网页"错误.我想它可能需要做一些事情,Kitkat使用Chromium来加载webview,但我不太确定.对此有任何修复?
这是我的代码:
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
mWebView.setWebViewClient(new MyWebViewClient());
mWebViewSettings = mWebView.getSettings();
mWebViewSettings.setJavaScriptEnabled(true);
mWebViewSettings.setAllowFileAccess(true);
mWebViewSettings.setAppCacheEnabled(true);
if (Build.VERSION.SDK_INT < 18)
    mWebViewSettings.setAppCacheMaxSize(5 * 1024 * 1024); // 5MB
mWebViewSettings.setLoadsImagesAutomatically(true);
mWebViewSettings.setAppCachePath(getActivity().getApplicationContext()
        .getCacheDir().getAbsolutePath());
mWebViewSettings.setBuiltInZoomControls(true);
if(Build.VERSION.SDK_INT<=18)
    mWebViewSettings.setDefaultZoom((WebSettings.ZoomDensity.FAR));
mWebViewSettings.setUseWideViewPort(true);
mWebViewSettings.setLoadWithOverviewMode(true);
我使用以下代码加载它:
if (NetworkUtil.IS_ONLINE_WITH_DATA_CONNECTION) {
    MyPrefs = getActivity().getSharedPreferences(
            "AHSelectionPreffs",
                    Context.MODE_PRIVATE);
    Date CAMPUS_MAP_LAST_UPDATE_DATE = new Date();
    String CAMPUS_MAP_LAST_UPDATE_DATE_STRING = MyPrefs
                .getString("CAMPUS_MAP" + String.valueOf(StorageHelper.ID), null);
    SimpleDateFormat simpleDateFormatter = new SimpleDateFormat(
                            "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
    if (CAMPUS_MAP_LAST_UPDATE_DATE_STRING != null) {
        try {
            CAMPUS_MAP_LAST_UPDATE_DATE = simpleDateFormatter
                    .parse(CAMPUS_MAP_LAST_UPDATE_DATE_STRING);
        } catch (ParseException e1) {
            e1.printStackTrace();
            System.out.println("Cant format date!!!!");
        }
        int n = (int) ((curDate.getTime() - CAMPUS_MAP_LAST_UPDATE_DATE
                                .getTime()) / (1000 * 60 * 60));
        if (n < 24 * UPDATE_DURATION_IN_DAYS) {
            mWebView.getSettings().setCacheMode(
                                    WebSettings.LOAD_CACHE_ELSE_NETWORK);
        } else {
            updateCampusMapData();
        }
    } else {
        updateCampusMapData();
    }
} else {
    mWebView.getSettings().setCacheMode(
                    WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
if (StorageHelper.campus_map_link.Mobile_Link_URL != null) {
        mWebView.loadUrl(StorageHelper.campus_map_link.Mobile_Link_URL);
}
private void updateCampusMapData() {
    mWebView.getSettings().setCacheMode(
        WebSettings.LOAD_NO_CACHE);
    MyPrefs = getActivity().getSharedPreferences(
        "AHSelectionPreffs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = MyPrefs.edit();
    editor.putString("CAMPUS_MAP" + String.valueOf(StorageHelper.ID),
                        curDate.toString());
    editor.commit();
}
| 归档时间: | 
 | 
| 查看次数: | 3265 次 | 
| 最近记录: |