欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ionic中的$ionicPlatform.ready事件中的通用设置

程序员文章站 2022-04-10 11:30:44
前言 $ionicplatform.ready事件是用于检测当前的平台是否就绪的事件,相当于基于document的deviceready事件, 在app中一些通用关于设备...

前言

$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事件中的通用设置,希望对大家有所帮助