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 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
JavaScript脚本性能的优化方法
Feb 02 Javascript
javascript事件问题
Sep 05 Javascript
js里的prototype使用示例
Nov 19 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
如何用javascript计算文本框还能输入多少个字符
Jul 29 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
Oct 27 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
Vue和Flask通信的实现
May 19 Vue.js
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
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
使用Python实现牛顿法求极值
2020/02/10 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Python数据可视化图实现过程详解
2020/06/12 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
书法培训心得体会
2014/01/05 职场文书
新书吧创业计划书
2014/01/31 职场文书
公司合作协议书范本
2014/04/18 职场文书
党员承诺书怎么写
2014/05/20 职场文书
师范毕业生求职信
2014/07/11 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
工作失职自我检讨书
2015/05/05 职场文书
Java基础之线程锁相关知识总结
2021/06/30 Java/Android