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无缝滚动代码
Jan 03 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
Feb 28 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 Javascript
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
Feb 01 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 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超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
PHP图片水印类的封装
2017/07/06 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
prototype1.4中文手册
2006/09/22 Javascript
广告代码静态化js通用函数
2007/05/09 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
vue组件之间的数据传递方法详解
2019/04/19 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
python里将list中元素依次向前移动一位
2014/09/12 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python编写弹球游戏的实现代码
2018/03/12 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
python版大富翁源代码分享
2018/11/19 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
骨干教师申报材料
2014/12/17 职场文书
cypress测试本地web应用
2022/06/01 Javascript