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 相关文章推荐
自制基于jQuery的智能提示插件一枚
Feb 18 Javascript
js实现正方形颜色从下往上升的效果
Aug 04 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
jQuery简单实现网页选项卡特效
Nov 24 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
详细解读AngularJS中的表单验证编程
Jun 19 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
Aug 23 Javascript
JavaScript创建对象的常用方式总结
Aug 10 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
Element Popover 弹出框的使用示例
Jul 26 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中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php a simple smtp class
2007/11/26 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
浅谈Python的异常处理
2016/06/19 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
高中教师考核方案
2014/05/18 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
工伤事故证明
2014/10/20 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
Python开发五子棋小游戏
2022/04/28 Python