• [转]Cordova Android 返回键拦截(backbutton)和退出(再点击一次跳出)


    本文转自:https://blog.csdn.net/aierJun/article/details/53944061


    在Android原生webview里重写onBackPressed()就可以。
    @Override
    public void onBackPressed() {
    super.onBackPressed();
    }

    但在CordovaWebView里已经被cordovawebview处理掉了,重写onBackPressed()没用。
    注意:但onBackPressed()方法在最后一个页面会实现,所以要在最后主页面实现点击出现再点击一次退出,在这处理是可以的。
    代码如下:
    @Override
    public void onBackPressed() {
    LogUtils.LogUtils(".............onBackPressed...............");
    if (webView.canGoBack()){
    webView.goBack();
    }else {
    exit();
    }
    }
    // 定义一个变量,来标识是否退出
    private static boolean isExit = false;

    Handler mHandler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
    super.handleMessage(msg);
    isExit = false;
    }
    };
    private void exit() {
    if (!isExit) {
    isExit = true;
    Toast.makeText(getApplicationContext(), R.string.exit_again,
    Toast.LENGTH_SHORT).show();
    // 利用handler延迟发送更改状态信息
    mHandler.sendEmptyMessageDelayed(0, API.HANDLER_MAIN);
    } else {
    super.onBackPressed();
    ClearCacheUtils.cleanDatabases(MainActivity.this); //暂时可以清楚缓存,当涉及到保存用户账户密码时一定要关闭
    finish();
    }
    }

    关于在网页中拦截处理也是可以。

    function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
    }

    // device APIs are available
    //
    function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
    }

    // Handle the volume up button
    //
    function onBackKeyDown() {
    goback();
    cordova.save.save();
    }
    function goback() {
    setTimeout(function () {
    history.go(-1);
    }, 200);
    }

    注意:使用了网页的拦截后onBackPressed()方法就彻底不能用了,所以,用了拦截的再点一次退出就在拦截里处理吧
    ---------------------
    作者:Ani_aierJun
    来源:CSDN
    原文:https://blog.csdn.net/aierJun/article/details/53944061
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    scrum第二阶段项目冲刺04
    scrum第二阶段项目冲刺03
    scrum第二阶段项目冲刺02
    scrum第二阶段项目冲刺01
    团队项目02——疫情数据分析
    scrum第二阶段项目冲刺
    现阶段本组app与咸鱼的对比
    团队项目第一阶段成果——意见改进
    团队项目第一阶段成果——意见汇总
    文件的合并与分割
  • 原文地址:https://www.cnblogs.com/freeliver54/p/10143725.html
Copyright © 2020-2023  润新知