ionic ionic2进入App前判断是否登录,进入页面之前作判断,实现未登录跳转

App开发,肯定会遇到需要判断是否登录,未登录即跳转到登录页的问题,其实在ionic1中很容易解决:

$scope.$on("$ionicView.beforeEnter", isLogin($state));

1.实现进入App之前判断是否展示引导页,欢迎页。
在app.js中的主module .run方法内作判断,使用$rootScope服务
$rootScope.$on("$ionicView.beforeEnter", isWelcome($state));
2.实现进入页面前,先判断是否登录
在本页面的controller中使用
$scope.$on("$ionicView.beforeEnter", isLogin($state));

ionic2中更容易解决了,在需要判断登录的页面加如下代码:

1.方法一:在首页判断

  ionViewWillEnter() {
    if (this.isLogin()) {}
  }
 isLogin(): boolean {}
不过,这样有个问题,就是App先进到首页,若未登录再跳转到登录页,就是 有一个明显的切换过程,体验不好

2.方法二:在App初始化完成时判断

在app.component.ts文件中,
export class MyApp {
  rootPage: any = TabsPage;
  constructor(platform: Platform) {
    if (!isLogin()) {
      this.rootPage = LoginPage;
    }
}



之后,在登录成功后,在login.ts中再重新设置rootPage为TabsPage,增加以下内容:

import {App } from 'ionic-angular';
import { TabsPage } from '../tabs/tabs';

constructor(private app: App){}

loginOnSuccess(){
this.app.getRootNav().setRoot(TabsPage);
}

这样就完美解决了未登录跳转到登录页的问题。



你可能感兴趣的:(ionic笔记)