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


Posted in Javascript onJune 11, 2017

前言

$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); 
      }
      // 设置物理硬件后退按钮,只有安卓有效
      $ionicPlatform.registerBackButtonAction(function (e) {
        e.preventDefault();
        if (backButtonPressedOnceToExit) {
          ionic.Platform.exitApp();
        } else {
          /* your-tab-path 如 : /tab/home */
          if ($location.path() == "your-tab-path1" || $location.path() == "your-tab-path2") {
            backButtonPressedOnceToExit = true;
            $cordovaToast.showShortBottom('再按一次退出!');
            $timeout(function () {
              backButtonPressedOnceToExit = false;
            }, 2000);
          }
        }
      }, 110);
      // 设置安卓物理硬件的普通后退
      $ionicPlatform.onHardwareBackButton(function () {
        $ionicNativeTransitions.goBack();
      });
    };
  }]);

以上所述是小编给大家介绍的ionic中的$ionicPlatform.ready事件中的通用设置,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
TFDN图片播放器 不错自动播放
Oct 03 Javascript
深入认识javascript中的eval函数
Nov 02 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
Mar 02 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
js+html5绘制图片到canvas的方法
Jun 05 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
基于JavaScript实现复选框的全选和取消全选
Feb 09 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
Dec 09 Javascript
JS判断一个数是否是水仙花数
Jun 11 #Javascript
在bootstrap中实现轮播图实例代码
Jun 11 #Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 #Javascript
PHP7新特性简述
Jun 11 #Javascript
jquery与js实现全选功能的区别
Jun 11 #jQuery
jQuery 表单序列化实例代码
Jun 11 #jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 #jQuery
You might like
PHP中的类-什么叫类
2006/11/20 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php常用图片处理类
2016/03/16 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
Stop SQL Server
2007/06/21 Javascript
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
公关活动策划方案
2014/05/25 职场文书
就业协议书
2014/09/12 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电
Promise静态四兄弟实现示例详解
2022/07/07 Javascript