解决webview调用goBack()返回上一页自动刷新闪白的情况

问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现。

试了好多网上的方法,发现都是扯淡。

后来意识到,webView 有缓存存在着缓存模式,怎么用不同的缓存模式呢?

//设置缓存模式 webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

需要把模式改成LOAD_NO_CACHE!!

但是每次都得重新请求很费资源,于是可以放在onKeyDown()里重新写一个LOAD_NO_CACHE,只在返回时调用无缓存模式

这样就可以在返回前一个页面的时候不刷新出现闪白了

代码:

private void initView() { webview = (WebView) findViewById(R.id.faq_wv); webview.loadUrl(url); webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); } /* 改写物理按键返回的逻辑 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { // 返回上一页面 webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webview.goBack(); return true; } return super.onKeyDown(keyCode, event); }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

时间: 2024-09-20 04:22:15

解决webview调用goBack()返回上一页自动刷新闪白的情况的相关文章

js返回上一页并刷新的多种实现方法

 这篇文章主要介绍了js返回上一页并刷新的几种方法,需要的朋友可以参考下 <a href="javascript:history.go(-1)">返回上一页</a>  <a href="javascript:location.reload()">刷新当前页面</a>  <a href="javascript:" onclick="history.go(-2); ">返

js返回上一页并刷新的多种实现方法_javascript技巧

<a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:location.reload()">刷新当前页面</a> <a href="javascript:" onclick="history.go(-2); ">返回前两页</a> <a href="javascr

js返回上一页并刷新代码整理_javascript技巧

一:JS 重载页面,本地刷新,返回上一页 复制代码 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:location.reload()">重载页面,本地刷新</a> <a href="javascript:history.go(-1);location.reload()">返回上一页重载页面,

js返回上一页并刷新的几种方法:

js返回上一页并刷新的几种方法:返回上一页 刷新当前页面 返回前两页 返回上一页并刷新 返回上一页

ja vasc ript 返回上一页及刷新页面的实现方法

  1. ja vasc ript 返回上一页history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: [代码]xm l代码: <a href="ja vasc ript:history.go(-1);">向上一页</a> response.Write

JS本地刷新返回上一页代码_javascript技巧

长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下: 一.JS 重载页面,本地刷新,返回上一页 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:location.reload()">重载页面,本地刷新</a> <a href="javascript:history.go(-1);location

返回上一页并自动刷新的JavaScript代码

 返回上一页并自动刷新,JavaScript一般的使用history.go(-1)和history.back()等,需要的朋友可以参考下 用JavaScript一般的使用history.go(-1)和history.back()等    但返回的是页面还是缓存中的数据,更新的数据不能马上呈现出来    这里只要使用一句简单的一条javascript语句就能实行,返回上一页并刷新页面   代码如下: location.href = document.referrer;//重新载入上一页     

Web---JS-返回上一页并刷新代码整理

返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下: 一:JS 重载页面,本地刷新,返回上一页 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:location.reload()">重载页面,本地刷新</a> <a href=&

wap手机端解决返回上一页的js实例_javascript技巧

如下所示: <input id="hd_referrer" type="hidden" /> <a href="javascript:void(0)" onclick="referurl(); ">返回 </a> <script> $(function () { $("#hd_referrer").val(document.referrer); }); fun