Skip to content
app.component.ts 4.84 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ViewChild} from '@angular/core';
import {Platform, AlertController, Content} from 'ionic-angular';
import {StatusBar} from '@ionic-native/status-bar';
import {SplashScreen} from '@ionic-native/splash-screen';
import {Storage} from "@ionic/storage";
import {LoginPage} from '../pages/login/login';
import {AppVersion} from '@ionic-native/app-version';
import {AppUpdateService} from "../service/appUpdate.service";
import {Keyboard} from '@ionic-native/keyboard';
import {Response} from "@angular/http";
import {TabsPage} from "../pages/tabs/tabs";
wangqinghua's avatar
wangqinghua committed
import {AppGlobal, AppService} from "../service/http.service";
wangqinghua's avatar
wangqinghua committed
import {EmitService} from "../provide/emit.service";
wangqinghua's avatar
wangqinghua committed
import {MobileAccessibility} from "@ionic-native/mobile-accessibility";
wangqinghua's avatar
wangqinghua committed
import {timer} from "rxjs/observable/timer";
wangqinghua's avatar
wangqinghua committed
import {ScreenOrientation} from "@ionic-native/screen-orientation";
wangqinghua's avatar
wangqinghua committed
import {AppMainService} from "./app.service";
wangqinghua's avatar
wangqinghua committed
import {TabsService} from "../pages/tabs/tabs.service";
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
@Component({
    templateUrl: 'app.html'
})
export class MyApp {

    @ViewChild(Content) content: Content;
    rootPage;
wangqinghua's avatar
wangqinghua committed
    nowVersion = AppGlobal.defaultVersion;
wangqinghua's avatar
wangqinghua committed

    user;
wangqinghua's avatar
wangqinghua committed
    showSplash = false;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public platform: Platform,
wangqinghua's avatar
wangqinghua committed
                public statusBar: StatusBar,
                public splashScreen: SplashScreen,
wangqinghua's avatar
wangqinghua committed
                private alertCtrl: AlertController,
                private keyboard: Keyboard,
                private appUpdateService: AppUpdateService,
                private appVersion: AppVersion,
wangqinghua's avatar
wangqinghua committed
                private screenOrientation: ScreenOrientation,
wangqinghua's avatar
wangqinghua committed
                public emitSer: EmitService,
wangqinghua's avatar
wangqinghua committed
                public storage: Storage, private tabSer: TabsService,
wangqinghua's avatar
wangqinghua committed
                public mobileAccess: MobileAccessibility,
wangqinghua's avatar
wangqinghua committed
                private appMainSer: AppMainService,
wangqinghua's avatar
wangqinghua committed
                public appService: AppService) {
wangqinghua's avatar
wangqinghua committed
        this.platform.ready().then(() => {
wangqinghua's avatar
wangqinghua committed
            this.showSplash = true;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
            this.splashScreen.hide();
            this.statusBar.show();
            this.statusBar.overlaysWebView(false);
            this.statusBar.backgroundColorByHexString('#e12724');
            this.statusBar.styleLightContent();
wangqinghua's avatar
wangqinghua committed
            this.device();
wangqinghua's avatar
wangqinghua committed
            timer(4500).subscribe((res) => {
                this.showSplash = false;
            });
wangqinghua's avatar
wangqinghua committed
            //app字体不跟随手机字体大小变化
wangqinghua's avatar
wangqinghua committed
            this.mobileAccess.usePreferredTextZoom(false);
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //用户设备
wangqinghua's avatar
wangqinghua committed
    device() {
wangqinghua's avatar
wangqinghua committed
        if (this.platform.is('android')) {
wangqinghua's avatar
wangqinghua committed
            this.screenOrientation.lock('portrait-primary');  //锁定竖屏
wangqinghua's avatar
wangqinghua committed
            this.checkVersion();
wangqinghua's avatar
wangqinghua committed
        } else {
            this.loadLogin();
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //检测是否需要更新
wangqinghua's avatar
wangqinghua committed
    async checkVersion() {

wangqinghua's avatar
wangqinghua committed
        await this.appVersion.getVersionNumber().then((ver: string) => {
wangqinghua's avatar
wangqinghua committed
            this.nowVersion = ver.trim();
            this.loadLogin();
wangqinghua's avatar
wangqinghua committed
        });
        await this.appUpdateService.compariVersion().subscribe(res => {
            const data = res.json();
wangqinghua's avatar
wangqinghua committed
            this.appMainSer.setSwtich(data.switch);
            console.log(data);
wangqinghua's avatar
wangqinghua committed
            data.latestVersion = data.latestVersion.trim();
            if (data.code == 200) {
wangqinghua's avatar
wangqinghua committed
                if (data.latestVersion != null && data.latestVersion != this.nowVersion) {
                    this.appUpdateService.detectionUpgrade(data.androidDownload, true, data.latestVersion); //提示升级
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        });
    }

wangqinghua's avatar
wangqinghua committed
    async loadLogin() {
        await this.storage.get('userLoginInfo').then((value => {
wangqinghua's avatar
wangqinghua committed
            if (value != null && value != '' && value.rememberMe) {
wangqinghua's avatar
wangqinghua committed
                this.user = value;
wangqinghua's avatar
wangqinghua committed
                this.takeLogin();
wangqinghua's avatar
wangqinghua committed
            } else {
wangqinghua's avatar
wangqinghua committed
                this.rootPage = LoginPage;
            }
wangqinghua's avatar
wangqinghua committed
        }));
wangqinghua's avatar
wangqinghua committed
        await this.getNoRead();
    }

wangqinghua's avatar
wangqinghua committed
    async takeLogin() {
        this.user.newestVersion = this.nowVersion;
wangqinghua's avatar
wangqinghua committed
        await this.tabSer.loginpost(this.user).subscribe((res) => {
            if (res.code == '200') {
                this.storage.set('user', res.data);
                this.user.userid = res.data.id;
                this.storage.set('userLoginInfo', this.user);
                this.rootPage = TabsPage;
            } else {
wangqinghua's avatar
wangqinghua committed
                this.appService.alert(res.message);
wangqinghua's avatar
wangqinghua committed
                this.rootPage = LoginPage;
            }
wangqinghua's avatar
wangqinghua committed
        });
    }

wangqinghua's avatar
wangqinghua committed
    getNoRead() {
wangqinghua's avatar
wangqinghua committed
        this.appService.ObserverHttpPost("/wisdomgroup/modules/message/findAllActivityForAppWithXQ", null)
            .subscribe((res: Response) => {
wangqinghua's avatar
wangqinghua committed
                    console.log('getNoRead');
wangqinghua's avatar
wangqinghua committed
                    let data = res.json();
                    let num = 0;
wangqinghua's avatar
wangqinghua committed
                    if (data.length > 0) {
                        data.forEach(e => {
                            if (e.isRead == 0) num++;
wangqinghua's avatar
wangqinghua committed
                        });
                        this.appMainSer.setRead(num);
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                }, error => {
                }
            );
    }

wangqinghua's avatar
wangqinghua committed
}