做项目时,需求是实现WebView网页后退功能,屏蔽Back键退出,改为网页后退。
①webView.goBack();//回退网页
②webView.goForward();//前进网页
③webView.reload();//刷新网页
(1)Webview定义与初始化:
wv = (WebView) findViewById(R.id.webView1); WebSettings webSettings = wv.getSettings(); webSettings.setBuiltInZoomControls(true); webSettings.setJavaScriptEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setSupportZoom(true); wv.requestFocus();
(2)监听back键:
监听back键方式有两种:
第一种适用于android2.0以上版本
// 监控back键点击 @Override public void onBackPressed() { super.onBackPressed(); }
此次使用的是第二种方法
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { goBack(); return true; } return super.onKeyDown(keyCode, event); }
(3)编写回退逻辑
/** * 网页回退 */ public void goBack(){ // 若无上级页面,则退出Activity if (wv == null || !wv.canGoBack()) { closeActivity(); } else { wv.goBack(); } }
先执行webView.canGoBack()方法判断是否可以回退网页,返回true则执行webView.goBack(),返回false则关闭Activity