一、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(); } });}