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

前言

$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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值