webView_back控制网页后退

2019-04-05  本文已影响0人  leap_

正常情况下按下back会直接跳出webView这个activity。
目标:用户在按下back键的时候返回web的上一层,而不是退出web。
思路:拦截手指点击back这个事件。

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KEYCODE_BACK)&&webView.canGoBack()){
            webView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

onKeyDown这个方法是用来监听手指在屏幕上的按键,如果用户按下back,并且webView可以go back的话就消费用户点击的back,如果不能消费,就还传递到上层去。

扩展:双击back退出应用

long preTime;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        long currentTime = new Date().getTime();
        // 如果时间间隔大于2秒,不处理
        if ((currentTime - preTime) > 2000) {
            // 显示消息
            Toast.makeText(this, "再按一次退出程序!", Toast.LENGTH_SHORT).show();
            //更新时间
            preTime = currentTime;
            //截获事件,不再处理
            return true;
        }
    }
    System.exit(0);// 正常退出程序
    return super.onKeyDown(keyCode, event);
}

上一篇下一篇

猜你喜欢

热点阅读