解决webview调用 goBack() 返回上一页自动刷新闪白的情况
2023-09-11 14:20:27 时间
问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现。
试了好多网上的方法,发现都是扯淡。
后来意识到,webView 有缓存存在着缓存模式,怎么用不同的缓存模式呢?
//设置缓存模式
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
需要把模式改成LOAD_NO_CACHE!!
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); }
相关文章
- Android开发之WebView的开发使用(源码分享)
- uni-app - App 平台内嵌网页物理手机自带返回键失效解决方案(内嵌的 webview 网页 H5 打包后手机物理返回键无效直接退出应用了)
- Android 4.4 KitKat, the browser and the Chrome WebView
- 在Android的webview中定做js的alert,confirm和prompt对话框的方法
- 【Harmony OS】【JAVA UI】webView 动画加载资源加载动画交互
- XCode下Swift – WebView IOS demo
- swift-初探webView与JS交互
- webview和 内置浏览器的调用
- UI系统的核心在于渲染机制:效率与生命--原生渲染为何比webview渲染快?
- 检测webView的最后一次跳转
- Appium之编写H5应用测试脚本(切换到Webview)
- WebView Cache 缓存清除
- 小程序webview应用实践
- 鸿蒙-webview的使用和JS交互(附源码)
- Cookie管理 WebView同步
- 是否应该开启WebView硬件加速?
- [WebView学习之二]:使用Web Apps 支持不同分辨率屏
- Android之WebView的使用样例——WebSetting、WebViewClient、WebChromeClient
- Android:控件WebView显示网页 -摘自网络