80,350
社区成员
发帖
与我相关
我的任务
分享
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
//按返回键操作并且能回退网页
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
//后退
/**
* 拿到上一页的路径,如果上一页的路径==门户首页,则直接跳转至首页(防止出现无法返回),否则直接返回上一页
* 如果是电脑页面重加载为手机页面导致无法返回,判断后直接返回之前的页面
*/
WebBackForwardList backForwardList = webView.copyBackForwardList();
if (backForwardList != null && backForwardList.getSize() != 0) {
//当前页面在历史队列中的位置
int currentIndex = backForwardList.getCurrentIndex();
WebHistoryItem historyItem = backForwardList.getItemAtIndex(currentIndex - 1);
if (historyItem != null) {
String backPageUrl = historyItem.getUrl();
if (backPageUrl.equals("首页地址")) {
Log.v("记录点:", backPageUrl);
webView.loadUrl("首页地址");
webView.postDelayed(new Runnable()
{
@Override
public void run()
{
webView.clearHistory();
}
}, 1000);
} else {
String f_url = webView.getUrl();
webView.goBack();
String b_url = webView.getUrl();
if(f_url.equals(b_url)){
webView.goBackOrForward(-1);
}
}
}
}
}else{
onBackPressed();//双击返回退出app
}
}
return true;
}
});