ionic 项目的创建的一些常用配置(不断更新中)

1.将tabs选项卡在底部显示的配置代码:
在app.js加入下面代码即可:

  /**
   * 修改导航样式和禁止页面跳转动画
   */
  .config(['$ionicConfigProvider',function ($ionicConfigProvider) {

    // $ionicConfigProvider.platform.ios.tabs.style('standard');
    // $ionicConfigProvider.platform.ios.tabs.position('bottom');
    $ionicConfigProvider.platform.android.tabs.style('standard');
    $ionicConfigProvider.platform.android.tabs.position('bottom');

    // $ionicConfigProvider.platform.ios.navBar.alignTitle('center');
    $ionicConfigProvider.platform.android.navBar.alignTitle('center');

    // $ionicConfigProvider.platform.ios.backButton.previousTitleText('').icon('ion-ios-arrow-thin-left');
    $ionicConfigProvider.platform.android.backButton.previousTitleText('').icon('ion-chevron-left');

    // $ionicConfigProvider.platform.ios.views.transition('ios');
    $ionicConfigProvider.platform.android.views.transition('android');
  }])

2.隐藏底部选项卡的配置:
<1>在app.js中创建自定义指令代码:

  /**
   * 隐藏底部导航栏
   */
  .directive('hideTabs', function ($rootScope) {
    return {
      restrict: 'A',
      link: function (scope, element, attributes) {
        scope.$on('$ionicView.beforeEnter', function () {
          scope.$watch(attributes.hideTabs, function (value) {
            $rootScope.hideTabs = value;
          });
        });

        scope.$on('$ionicView.beforeLeave', function () {
          $rootScope.hideTabs = false;
        });
      }
    };
  })

2.在需要隐藏的界面的导航栏中使用以上的自定义指令,示例:

<ion-view view-title="隐藏底部选项卡" hide-tabs="true">
  <ion-content>
  </ion-content>
</ion-view>

3.有些时候你觉得使用ionic1版本开发时,界面跳转会很卡顿,这时候你可以选择禁用页面的跳转动画,只需要在app.js中的.config中加入下面的代码即可:

 //禁止页面跳转动画
 $ionicConfigProvider.views.transition('no');

4.当需要双击点击退出系统时只需要在app.js的.run中加入以下代码:

 /**
     * 双击退出
     */
    $ionicPlatform.registerBackButtonAction(function (e) {
      //判断处于哪个页面时双击退出
      if ($location.path() == '/login' || $location.path() == '/tab/map') {
        if ($rootScope.backButtonPressedOnceToExit) {
          ionic.Platform.exitApp();
          // cordova.plugins.backgroundMode.moveToBackground();
        } else {
          $rootScope.backButtonPressedOnceToExit = true;
          WGQToast.showShortBottom('再按一次退出系统');

          setTimeout(function () {
            $rootScope.backButtonPressedOnceToExit = false;
          }, 2000);
        }
      } else if ($ionicHistory.backView()) {
        $ionicHistory.goBack();
      } else {
        $rootScope.backButtonPressedOnceToExit = true;
        WGQToast.showShortBottom('再按一次退出系统');

        setTimeout(function () {
          $rootScope.backButtonPressedOnceToExit = false;
        }, 2000);
      }
      e.preventDefault();
      return false;
    }, 101);
  1. 本地存储、更改、获取,在service.js中添加以下代码,即可使用:
/**
 * 本地存储、更改、获取
 */
  .factory('localStorageService', [function () {
    var storage = localStorage;
    return {
      //取
      get: function localStorageServiceGet(key, defaultValue) {
        var stored = storage.getItem(key);
        try {
          stored = angular.fromJson(stored);
        } catch (error) {
          stored = null;
        }
        if (defaultValue && stored === null) {
          stored = defaultValue;
        }
        return stored;
      },

      //更新
      update: function localStorageServiceUpdate(key, value) {
        if (value) {
          storage.setItem(key, angular.toJson(value));
        }
      },

      //清空
      clear: function localStorageServiceClear(key) {
        storage.removeItem(key);
      }
    };
  }])

6.ionic界面复用时

  • 通过$ionicTabsDelegate.selectedIndex()来获取根tabs的索引
  • 通过$state.current.name来获取当前页面的url

7 .禁止页面跳转动画

 $ionicConfigProvider.views.transition('no');

8 . 隐藏掉返回按钮的前标题

$ionicConfigProvider.backButton.previousTitleText(false);

9 . 设置ionic工程内的所有headbar中的ion-title居中

 $ionicConfigProvider.platform.android.navBar.alignTitle('center');

10.如果应用实现了透明状态栏后,footbar以及原来flex布局实现软键盘遮挡覆盖全部失效,所以开发者为了处理这个问题,我们可以通过自定义指令来实现,在app.js中实现以下代码:

.directive('keyboardshow', function () {
  return {
    restrict: 'A',
    link: function (scope, element, attributes) {
      window.addEventListener('native.keyboardshow', function (e) {
        console.log(e.keyboardHeight);
        angular.element(element).css({
          'bottom': e.keyboardHeight + 'px'
        });
      });

      window.addEventListener('native.keyboardhide', function (e) {
        angular.element(element).css({
          'bottom': 0
        });
      });
    }
  };
})

在需要的控件上写入即可:

<ion-content id="cgpwcontent" style="background-color:#f7f7f7;" keyboardshow>
</ion-content>

作者:ZQH24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值