一、Android与H5混合开发双击手机返回键退出APP的问题

1、项目场景:
(1)在APP内进行一系列操作之后,点击返回键只会一直返回,双击返回也在执行返回界面的操作,如何实现双击返回键退出应用的操作?
(2)App内有几个顶层界面,==需求是点击返回键提示再次点击即将退出当前APP==,若没做处理时会遇到:一直返回最后会返回到登录界面。
2、处理思路:
(1)Android webview 与js(vue)实现交互,然后Android接受特定的界面返回值来判断是否退出当前APP。还是返回上一层路由。具体实现可以参考这篇博客
(2)因为用第一种思路的时候,实现的不是很完美,不知道是不是我哪里操作错误,看了很久最后放弃了,跟公司的Android开发最后采取了下面这种方式去实现,思路如下:因为顶层页面的路由是固定的,所以我们通过在Android中去获取当前界面路由,截取关键字段,判断是否等于顶层界面路由字段,不等的话回退到上一个界面路由,相等的时候,给提示,然后连续点击即可退出APP。暂时在使用过程中还没有发现什么问题,如大家在使用过程中,有更好的处理方法和问题,欢迎大家在下方评论告知。

/*** 首页五个界面URL的末尾字符*/private List strList = new ArrayList<>(Arrays.asList("/chatlist", "/friends", "/shop", "/cart", "/my"));
@Overridepublic void onBackPressed() {//super.onBackPressed();    String js = "appgoback()";    webView.evaluateJavascript(js, new ValueCallback() {        @Override        public void onReceiveValue(String value) {            long currentTime = System.currentTimeMillis();            String url = webView.getUrl();            String endUrl = url.substring(url.lastIndexOf("/"));            //  判断在首页返回,退出界面            if (strList.contains(endUrl)) {                if ((currentTime - touchTime) >= waitTime) {                    //让Toast的显示时间和等待时间相同                    Toast.makeText(getApplicationContext(), "再按一次退出", (int) waitTime).show();                    touchTime = currentTime;                } else {                    finish();                }                return;            }            d("value: " + value);            if (value.equals("0")) {                d("true", "equal");                if (webView.canGoBack()) {                    webView.goBack();                } else {                    moveTaskToBack(true);                }                return;            }            finish();        }    });}

更多相关文章

  1. 第3章 UI
  2. Android需不需要手动退出
  3. Android(安卓)“再按一次返回键退出程序”
  4. 初识Android的界面UI
  5. 【android】 使用观察者模式更新用户资料
  6. 关于android textview,edittext,导致界面的卡顿
  7. Android之路——第一个上线 APP项目总结
  8. Android中利用Handler在子线程中更新界面--简单的小球上下跳动案
  9. Android(安卓)模拟器测试远程服务器成功,但是到真机上测试一点反

随机推荐

  1. 修改Android默认的RadioButton样式
  2. android启动SDK Manager闪退问题
  3. Android(安卓)初识AppBarLayout 和 Coord
  4. Android(安卓)EditText输入框被键盘遮挡
  5. android 调用前摄像头进行拍照的方法及完
  6. Android关于Bitmap内存溢出的一点想法
  7. Android(安卓)技巧:命令行运行 sqlite3
  8. Android-常用UI控件(Spinner/AutoComplet
  9. 【MarsChen】D03_Say_Hello_to_Android
  10. Android待机流程分析