经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » Cordova » 查看文章
Cordova(ionic)项目实现双击返回键退出应用
来源:jb51  时间:2019/9/18 8:34:23  对本文有异议

Android原生项目实现双击返回键退出应用,是十分简单的,添加如下代码即可实现:

  1. //记录按键时间
  2. private long exitTime;
  3. @Override
  4. public boolean onKeyDown(int keyCode, KeyEvent event) {
  5. if(keyCode == KeyEvent.KEYCODE_BACK){
  6. exit();
  7. }
  8. return super.onKeyDown(keyCode, event);
  9. }
  10. public void exit(){
  11. if ((System.currentTimeMillis()-exitTime)>2000){
  12. // 点击间隔大于两秒,做出提示
  13. Toast.makeText(getApplicationContext(), "再按一次退出应用", Toast.LENGTH_SHORT).show();
  14. exitTime = System.currentTimeMillis();
  15. }else{
  16. finish();
  17. System.exit(0);
  18. }
  19. }

然而,在Cordova项目中,在继承CordovaActivity的MainActivity中添加上面的代码并不起作用,原因是返回键已经被Cordava的WebView处理掉了。

解决办法:在app.js的config中添加如下代码:

  1. // 等待加载PhoneGap
  2. document.addEventListener("deviceready", onDeviceReady, false);
  3. // PhoneGap加载完毕
  4. function onDeviceReady() {
  5. //按钮事件
  6. document.addEventListener("backbutton", eventBackButton, false); //返回键
  7. document.addEventListener("menubutton", eventMenuButton, false); //菜单键
  8. document.addEventListener("searchbutton", eventSearchButton, false); //搜索键
  9. }
  10. //返回键
  11. function eventBackButton(){
  12. //confirm("再点击一次退出!");
  13. window.plugins.ToastPlugin.show_short('再点击一次退出!');
  14. document.removeEventListener("backbutton", eventBackButton, false); //注销返回键
  15. //3秒后重新注册
  16. var intervalID = window.setInterval(
  17. function() {
  18. window.clearInterval(intervalID);
  19. document.addEventListener("backbutton", eventBackButton, false); //返回键
  20. },
  21. 3000
  22. );
  23. }
  24. //菜单键
  25. function eventMenuButton(){
  26. window.plugins.ToastPlugin.show_short('点击了 菜单 按钮!');
  27. }
  28. //搜索键
  29. function eventSearchButton(){
  30. window.plugins.ToastPlugin.show_short('点击了 搜索 按钮!');
  31. }

上面的脚本用到了Cordova的Toast插件,插件地址:

cordova plugin add

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号