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

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

/*** 首页五个界面URL的开端字符*/private List<String> strList = new ArrayList<>(Arrays.asList("/chatlist", "/friends", "/shop", "/cart", "/my"));
@Overridepublic void onBackPressed() {//super.onBackPressed();    String js = "appgoback()";    webView.evaluateJavascript(js, new ValueCallback<String>() {        @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();        }    });}