Android webview goback 使用cache中的网页

原创 2013年12月03日 17:49:55
webView进行goBack的时候,会自动重新load网页。但这并不是我们所希望的 有时候。有时候 我们希望back 是使用缓存的页面。

在2.3的时候 有 这个函数

setPageCacheCapacity 可以用来设置。可惜后来没有了。是隐藏的了。但是可以通反射来调用到这个函数。代码如下:


/**
     * 这个函数是用来处理 当进行goBack的时候 使用前一个页面的缓存 避免每次都从新载入
     * @param webSettings webView的settings
     */
    protected void setPageCacheCapacity(WebSettings webSettings) {
        try {
            Class<?> c = Class.forName("android.webkit.WebSettingsClassic");

            Method tt = c.getMethod("setPageCacheCapacity", new Class[] { int.class });

            tt.invoke(webSettings, 5);

        } catch (ClassNotFoundException e) {
            System.out.println("No such class: " + e);
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }






js history.go 使用浏览器缓存

js的history.go()方法,实际上就是使用浏览器缓存来前进或者后退,所以使用这个方法达到的页面是滞后的,如果做了更新操作,用history.go()达到的页面状态是未更新时的状态,所以如果做a...
  • ownfire
  • ownfire
  • 2011年12月05日 17:38
  • 5277

Android webview goback 使用cache中的网页

webView进行goBack的时候,会自动重新load网页。但这并不是我们所希望的 有时候。有时候 我们希望back 是使用缓存的页面。 在2.3的时候 有 这个函数 setPageCacheC...
  • cjopengler
  • cjopengler
  • 2013年12月03日 17:49
  • 4767

解决UIWebView 前进、后退刷新的坑

分析对照UCWeb,通过设置 pagecachesize 解决UIWebView 前进、后退刷新页面的问题。...
  • wadahana
  • wadahana
  • 2015年12月03日 23:59
  • 15050

Android WebView 因重定向无法正常goBack()的一种解决小方案

昨天在项目里面A界面点击不同的按钮跳到一个B界面webViewPageActivity,用Intent传入不同的title和url,B界面中有一个大的webView,加载不同的url,但是点击后退键的...
  • weichenxu1234
  • weichenxu1234
  • 2017年05月04日 09:25
  • 407

不记录webview缓存

首先要这么设置: 不使用缓存,WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);如果不想回退时返回曾经访问过的页面,可以在...
  • TTKatrina
  • TTKatrina
  • 2016年11月23日 11:18
  • 1272

如何处理logout后,后退按钮(返回键)依旧显示缓存的问题

在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法。现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一个页面。如果在用户...
  • u014345677
  • u014345677
  • 2014年03月25日 13:25
  • 536

Android开发问题记录-webview goBack键失效

现象:     在Android4.4及以上的系统中,使用自定义的webview打开连接,在页面中再点击进入二级或三级页面,通过    if (this.mWebView.canGoBack()) {...
  • shashashashi
  • shashashashi
  • 2016年03月23日 11:13
  • 1753

android webview goBack()之后 getUrl()无效问题

今天遇到 的问题 在点击WebView中某个连接的时候如(“http://www.baidu.com”),显示原App上的一些控件,如果不是这个连接 则隐藏这个控件 现在在setWebViewCl...
  • VIPqiangqiang
  • VIPqiangqiang
  • 2015年09月21日 14:19
  • 1833

iOS goback页面刷新问题

原因: 在WebView的_setCacheModel中被调用,_setCacheModel会根据0-2三种不同的cache模式和实际内存的大小设置各种缓存的大小,其中也包含了PageCache...
  • ZY_FlyWay
  • ZY_FlyWay
  • 2017年05月17日 10:10
  • 967

Android问题—WebView缓存问题

1.缓存的分类: 首先要说的一点是缓存的分类,我们缓存的数据分为:页面缓存和数据缓存 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产...
  • u012758088
  • u012758088
  • 2017年04月08日 12:06
  • 531
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android webview goback 使用cache中的网页
举报原因:
原因补充:

(最多只允许输入30个字)