Ionic系列——android双击退出应用和物理返回按钮隐藏键盘的实现

1、需求描述

因为要控制在返回上一页面的时候,如果有键盘,需要先隐藏键盘,所以需要自定义android手机的物理返回键单击事件,自己定义返回按钮的优先级操作,然后实现在首页面和登录页双击退出应用的操作。

2、准备

添加插件$cordovaToast,$cordovaKeyboard

cordova plugin add https://github.com/driftyco/ionic-plugins-keyboard.git
cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git

3、代码实现

引入$cordovaToast,$cordovaKeyboard的依赖。

angular.module(‘starter‘, [‘ionic‘, ‘route‘, ‘config‘, ‘global‘, ‘commonJs‘, ‘ngCordova‘])
    .run([‘$ionicPlatform‘, ‘$rootScope‘, ‘$location‘, ‘$timeout‘, ‘$ionicHistory‘, ‘CommonJs‘, ‘$cordovaToast‘,‘$cordovaKeyboard‘, function ($ionicPlatform, $rootScope, $location, $timeout, $ionicHistory,CommonJs,$cordovaToast,$cordovaKeyboard) {
        $ionicPlatform.ready(function () {
            // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
            if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            }
            if (window.StatusBar) {
                // org.apache.cordova.statusbar required
                StatusBar.styleLightContent();
            }
        });

        //物理返回按钮控制&双击退出应用
        $ionicPlatform.registerBackButtonAction(function (e) {
            //判断处于哪个页面时双击退出
            if ($location.path() == ‘/tab/todoList‘ || $location.path() == ‘/tab/doneList‘ || $location.path() == ‘/tab/account‘|| $location.path() == ‘/login‘) {
                if ($rootScope.backButtonPressedOnceToExit) {
                    ionic.Platform.exitApp();
                } else {
                    $rootScope.backButtonPressedOnceToExit = true;
                    $cordovaToast.showShortBottom(‘再按一次退出系统‘);
                    setTimeout(function () {
                        $rootScope.backButtonPressedOnceToExit = false;
                    }, 2000);
                }
            }else if ($ionicHistory.backView()) {
                if ($cordovaKeyboard.isVisible()) {
                    $cordovaKeyboard.close();
                } else {
                    $ionicHistory.goBack();
                }
            }
            else {
                $rootScope.backButtonPressedOnceToExit = true;
                $cordovaToast.showShortBottom(‘再按一次退出系统‘);
                setTimeout(function () {
                    $rootScope.backButtonPressedOnceToExit = false;
                }, 2000);
            }
            e.preventDefault();
            return false;
        }, 101);

    }]);
时间: 2024-10-09 05:19:09

Ionic系列——android双击退出应用和物理返回按钮隐藏键盘的实现的相关文章

android 双击退出

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(!exitBy2Click(HomeActivity.this)){ return false; } // 调用双击退出函数 } return super.onKeyDown(keyCode, event); } private long time; private boolean

使用ionic开发时用遇到监听手机返回按钮的问题~

当时用的是ionic开发一个app,需求是,当按下手机的返回按钮,在指定的页面双击退出,而在其他页面点击一次返回到上个页面: 其实用ionic自带的服务就可以解决:  //双击退出   $ionicPlatform.registerBackButtonAction(function (e) {   //判断处于哪个页面时双击退出    if($location.path() =='/message' || $location.path() =='/work' || $location.path(

网站退出登录防止通过返回按钮回到历史页面

一般做网站的时候,都是通过点击注销之后返回登录页面, 虽然此时session设置为过期,但是用户还是可以通过点击 浏览器的返回按键返回到刚才操作的页面,虽然用户再次 刷新之后依然会进入登录页面,但是个人感觉用户的体验效果 还时不好.所以在网上找了很久,终于发现一些方法可以用, 在此记录下,如果哪位有更好的方法,望告知.谢谢! 在退出的页面增加如下的代码,即可: <script type="text/javascript"> window.onload = function(

Android双击Back退出应用

前言 在app主界面点击back时,通常有以下几种方式进行退出 单击即退出 弹出确认Dialog 再次点击退出程序 个人最喜欢方式3,相比于方式2,不需要再把手指移动到屏幕中央点击Dialog,相比于方式1,可以防止误操作. 实现 重写Activity的onBackPressed方法,当点击back时,记录下当前时间backPressedTime,并与上次点击的backPressedTime比较.若时间差小于1.5s,则退出,否则更新backPressedTime. long backPress

大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出

原文:大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出 这个操作在原生android里是很容易实现的,在xamarin里也不难,在activity里有方法OnKeyDown,我们只需要重写一下就可以了,然后通过webView重新加载到要返回的页面即可,当然操作有些死板,但还是有着不错的效果! 实现的原理就是在activity里设置一个时间,单击后把这个时间赋值并与当前时间进行比较,如果在2秒内,就认为是双击操作,当然这个时间间隔你可以自己设置,在认为是双

ionic双击退出键退出APP

1.安装插件 Toast is compatible with Cordova Plugman, compatible with PhoneGap 3.0 CLI, here's how it works with the CLI (backup your project first!): Using the Cordova CLI and the Cordova Plugin Registry $ cordova plugin add nl.x-services.plugins.toast $

Android双击返回键退出Activity的方法

第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedTimes == 0) { Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show(); mBackKeyPressedTimes = 1; new Thread() { @Override public

Android双击返回键退出Activity的两种方法

在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记录按键时间计算时间差实现.现在跟大家分享一下,代码如下,希望对大家有帮助: 第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedT

Android 双击返回键退出应用

今天做应用的双击退出效果,使用了网上建议的方法,但是每次都是点击一次就退出了,所以就没有用大家的方法,下面把自己的方法写出来,做一下记录.代码如下: /** 双击退出程序 */ private long mExitTime; @Override public void onBackPressed() { // TODO Auto-generated method stub // super.onBackPressed(); if ((System.currentTimeMillis() - mE