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 相关文章推荐
JS代码格式化和语法着色V2
Oct 14 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
Javascript 引擎工作机制详解
Nov 30 Javascript
js封装tab标签页实例分享
Dec 19 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
webstorm添加*.vue文件支持
May 08 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 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上传文件及图片到七牛的方法
2018/07/25 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
js获取表格的行数和列数的方法
2015/10/23 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
Vue 中axios配置实例详解
2018/07/27 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
详解Python中的正则表达式的用法
2015/04/09 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python表格存取的方法
2018/03/07 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
更新修改后的Python模块方法
2019/03/03 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
初婚未育证明
2014/01/15 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
电视新闻稿
2015/07/17 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技