离线时从缓存加载Webview

哈简

我的应用程序包含一个mainactivity,它导致第二个活动,并带有3个按钮中的1个选项,所有这些按钮均导致不同的webview。Web视图仅加载带有照片和一些文本的简单HTML页面。

我希望我的用户加载该页面1次,然后缓存该页面。我曾经web.setCacheMode(LOAD_CACHE_ELSE_NETWORK)为此。一切都很好,但这里是要抓住的地方。我在操作栏中使用了“刷新”按钮。仅调用web.reload()或,web.loadUrl("MyURL")但是,当我使用上述缓存模式时,刷新按钮不起作用,它仅加载缓存的页面。因此,当我用新的照片或文字更新HTML页面时,不会加载它。但是当我使用web.setcacheMode(LOAD_DEFAULT),不会被缓存,但刷新按钮可以使用。我确定我需要连接互联网才能使缓存正常工作。。。。。。。。。。。。。。。。。。

以下是我在网络视图中使用的代码。

public class AGF_R1 extends ActionBarActivity {


    WebView web;

    private int getScale(){
        Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        int width = display.getWidth();
        Double val = new Double(width)/new Double(1200);
        val = val * 100d;
        return val.intValue();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater mif = getMenuInflater();
        mif.inflate(R.menu.menu_agf__r1, menu);
        return super.onCreateOptionsMenu(menu);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //regelt de onClick
        switch (item.getItemId()) {
            case R.id.herlaad:
                web.reload();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.KnapperDev.knapper.jrw.R.layout.activity_agf__r1);

        web = (WebView) findViewById(com.KnapperDev.knapper.jrw.R.id.AGF_WebView1);
        web.setInitialScale(getScale());
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setBuiltInZoomControls(true);
        web.getSettings().setLoadsImagesAutomatically(true);
        web.loadUrl("http://77.161.45.179/AGF/AGF_R1.html");
        web.getSettings().setAppCacheEnabled(true);
        web.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        web.setWebViewClient(new AGF_WebClient());

        Calendar cal = Calendar.getInstance();
        cal.setFirstDayOfWeek(Calendar.MONDAY);

        int week = cal.get(Calendar.WEEK_OF_YEAR);
        int w1 = week;
        int w2 = week + 1;
        int w3 = week + 2;
        String rst = "Rooster week: ";

        getSupportActionBar().setTitle(rst + w1);

    }

    public class AGF_WebClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()){
            web.goBack();
            return  true;
        }
        return super.onKeyDown(keyCode, event);
    }

}
詹姆斯·苏格鲁

您可以尝试使用“刷新”按钮刷新缓存,而不是刷新网页吗?

公认的蛮力解决方案...

参考:http : //developer.android.com/reference/android/webkit/WebView.html#clearCache%28boolean%29

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

离线时从缓存加载Webview

来自分类Dev

从缓存加载网页时未执行Javascript

来自分类Dev

核心数据-禁用从缓存加载

来自分类Dev

如何阻止Symfony从缓存加载?

来自分类Dev

CSS-从缓存加载图像

来自分类Dev

不会在同一页面加载时从缓存中检索Firefox中的预加载图像

来自分类Dev

如何缓存 Json 数据以在 Webview 中无法使用 Internet 时离线查看

来自分类Dev

如何在使用移动浏览器浏览器时防止从缓存中重新加载网页?

来自分类Dev

如何从缓存或ajax加载中返回模板?

来自分类Dev

如何找出IE11是否从缓存加载了资源

来自分类Dev

RoboSpice:恢复应用后无法从缓存加载

来自分类Dev

Breeze-如何从缓存加载导航属性

来自分类Dev

Apache仍然从缓存加载,甚至禁用mod_expires

来自分类Dev

Three.js从缓存加载obj模型

来自分类Dev

NextJS:从缓存加载的图像不会触发onLoad事件

来自分类Dev

使用NSURL从缓存加载数据不起作用

来自分类Dev

Breeze-如何从缓存加载导航属性

来自分类Dev

javascript / jquery-识别从缓存加载

来自分类Dev

如何从缓存或外部存储加载以前下载的 pdf

来自分类Dev

c# 对象属性正在从缓存加载

来自分类Dev

django模板加载器已缓存,无法从缓存中加载模板

来自分类Dev

离线工作时缓存的liferay页面

来自分类Dev

从缓存中存储和加载图像,图像将存储但不会加载

来自分类Dev

Glide:如何阻止 Glide 从缓存加载图像,而不是每次从服务器加载

来自分类Dev

为什么 Chrome 应用无法加载我的离线缓存清单

来自分类Dev

加载 webview 时出错

来自分类Dev

离线时使用 SSL 加载 Picasso 图像

来自分类Dev

浏览器为什么不从缓存加载CDN文件?

来自分类Dev

作曲家未从缓存加载“ dev-master”版本

Related 相关文章

  1. 1

    离线时从缓存加载Webview

  2. 2

    从缓存加载网页时未执行Javascript

  3. 3

    核心数据-禁用从缓存加载

  4. 4

    如何阻止Symfony从缓存加载?

  5. 5

    CSS-从缓存加载图像

  6. 6

    不会在同一页面加载时从缓存中检索Firefox中的预加载图像

  7. 7

    如何缓存 Json 数据以在 Webview 中无法使用 Internet 时离线查看

  8. 8

    如何在使用移动浏览器浏览器时防止从缓存中重新加载网页?

  9. 9

    如何从缓存或ajax加载中返回模板?

  10. 10

    如何找出IE11是否从缓存加载了资源

  11. 11

    RoboSpice:恢复应用后无法从缓存加载

  12. 12

    Breeze-如何从缓存加载导航属性

  13. 13

    Apache仍然从缓存加载,甚至禁用mod_expires

  14. 14

    Three.js从缓存加载obj模型

  15. 15

    NextJS:从缓存加载的图像不会触发onLoad事件

  16. 16

    使用NSURL从缓存加载数据不起作用

  17. 17

    Breeze-如何从缓存加载导航属性

  18. 18

    javascript / jquery-识别从缓存加载

  19. 19

    如何从缓存或外部存储加载以前下载的 pdf

  20. 20

    c# 对象属性正在从缓存加载

  21. 21

    django模板加载器已缓存,无法从缓存中加载模板

  22. 22

    离线工作时缓存的liferay页面

  23. 23

    从缓存中存储和加载图像,图像将存储但不会加载

  24. 24

    Glide:如何阻止 Glide 从缓存加载图像,而不是每次从服务器加载

  25. 25

    为什么 Chrome 应用无法加载我的离线缓存清单

  26. 26

    加载 webview 时出错

  27. 27

    离线时使用 SSL 加载 Picasso 图像

  28. 28

    浏览器为什么不从缓存加载CDN文件?

  29. 29

    作曲家未从缓存加载“ dev-master”版本

热门标签

归档