ionic中的$ionicPlatform.ready事件中的通用设置

来源:互联网 发布:世界贸易组织数据库 编辑:程序博客网 时间:2024/06/08 02:59

前言

$ionicPlatform.ready事件是用于检测当前的平台是否就绪的事件,相当于基于document的deviceready事件, 在app中一些通用关于设备的设置必须在这个事件中处理, 为了代码的可读性,我们把设置功能封装成一个方法, 只要在该事件中调用就行了。

关键代码和注释说明

.factory('setCommon', [    '$ionicPlatform',    '$location',    '$timeout',    '$cordovaToast',    '$ionicNativeTransitions',    function ($ionicPlatform, $location, $timeout, $cordovaToast, $ionicNativeTransitions) {        return function () {            // 初始条件声明            var backButtonPressedOnceToExit = false;            // 设置启动页            navigator.splashscreen && navigator.splashscreen.hide && navigator.splashscreen.hide();            // 设置虚拟键盘和状态栏            if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);                cordova.plugins.Keyboard.disableScroll(true);            }            if (window.StatusBar) {                StatusBar.styleDefault();                // IOS overlay , Android not                ionic.Platform.isIOS() ? StatusBar.overlaysWebView(true) : StatusBar.overlaysWebView(false);             }            // 设置物理硬件后退按钮,只有安卓有效            var exitFlag = false;            $ionicPlatform.registerBackButtonAction(function(e) {                e.preventDefault();                if (exitFlag) {                    return ionic.Platform.exitApp();                }                /* your-tab-path 如 : /tab/home */                if ($location.path() == "your-tab-path1" || $location.path() == "your-tab-path2") {                    exitFlag = true;                    $cordovaToast.showShortBottom('再按一次退出!');                    $timeout(function() {                        exitFlag = false;                    }, 2000);                } else {                    $ionicNativeTransitions.goBack(); // 执行后退                }            }, 110);        };    }]);
阅读全文
0 0