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 相关文章推荐
javascript XML数据显示为HTML一例
Dec 23 Javascript
JavaScript作用域链使用介绍
Aug 29 Javascript
javascript实现的DES加密示例
Oct 30 Javascript
node.js中的fs.utimes方法使用说明
Dec 15 Javascript
不使用ajax实现无刷新提交表单
Dec 21 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
WebPack基础知识详解
Jan 16 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
详解Vue中的自定义指令
Dec 07 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
PHP+DBM的同学录程序(2)
2006/10/09 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
详解Python中for循环的使用方法
2015/05/14 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
用python实现学生管理系统
2020/07/24 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
公路绿化方案
2014/05/12 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
春秋淹城导游词
2015/02/11 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书