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 相关文章推荐
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
js实现addClass,removeClass,hasClass的函数代码
Jul 13 Javascript
10款非常有用的 Ajax 插件分享
Mar 14 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
js仿微信抢红包功能
Sep 25 Javascript
node中实现删除目录的几种方法
Jun 24 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
基于JavaScript实现表格隔行换色
May 08 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
jquery json 实例代码
2010/12/02 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
基于python中的TCP及UDP(详解)
2017/11/06 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
幼儿教师考核制度
2014/01/25 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
向女朋友道歉的话
2015/01/20 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
Python中else的三种使用场景
2021/06/16 Python
Python pandas求方差和标准差的方法实例
2021/08/04 Python
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技