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中的$(document).ready()使用小结
Feb 14 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
浅谈Javascript数组索引
Jul 29 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
浅谈js的异步执行
Oct 18 Javascript
快速使用node.js进行web开发详解
Apr 26 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
js实现简单抽奖功能
Nov 24 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
eBay奥地利站:eBay.at
2019/07/24 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
感恩母亲节活动方案
2014/03/04 职场文书
干部下基层实施方案
2014/03/14 职场文书
元宵节寄语大全
2015/02/27 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
纪律委员竞选稿
2015/11/19 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
Python之matplotlib绘制折线图
2022/04/13 Python
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android