Commit b3c4bb8b authored by yating.lin's avatar yating.lin

修改手机物理返回键的功能(按下后 跳转至上级页面,非上一次的页面)

parent 072dfe3d
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.witium.muchang.test" version="2.9.6.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="com.witium.muchang.test" version="2.9.6.6.7" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>牧场云</name>
<description>test</description>
<author email="frank.feng@witium.com" href="http://muchang.witium.com/">Van.chen - frank.feng</author>
......
import {Component, AfterViewInit, OnDestroy} from '@angular/core';
import {NavController, Platform} from '@ionic/angular';
import {
ActionSheetController,
AlertController,
MenuController,
ModalController,
NavController,
Platform,
PopoverController
} from '@ionic/angular';
import {SplashScreen} from '@ionic-native/splash-screen/ngx';
import {StatusBar} from '@ionic-native/status-bar/ngx';
import {Router, NavigationEnd} from '@angular/router';
......@@ -7,6 +15,7 @@ import {AppMinimize} from '@ionic-native/app-minimize/ngx';
import {Mqtt} from './service/mqtt';
import {Load} from './service/load';
import {Loading} from './service/loading';
import {Api} from './service/api';
declare var screen: any;
......@@ -104,7 +113,13 @@ export class AppComponent implements AfterViewInit, OnDestroy {
private mqtt: Mqtt,
public load: Load,
public loading: Loading,
private nav: NavController
private nav: NavController,
public alertController: AlertController,
public modalCtrl: ModalController,
public menuCtrl: MenuController,
public actionSheetCtrl: ActionSheetController,
public popoverCtrl: PopoverController,
private api: Api
) {
this.initializeApp();
}
......@@ -155,7 +170,8 @@ export class AppComponent implements AfterViewInit, OnDestroy {
}
registerBackButtonAction() {
this.platform.backButton.subscribe(() => {
this.platform.backButton.subscribe( () => {
this.androidBackButtonHandle();
if (this.url === '/index' || this.url === '/login') {
if (this.backBtnPressed) {
this.appMinimize.minimize();
......@@ -167,11 +183,47 @@ export class AppComponent implements AfterViewInit, OnDestroy {
setTimeout(() => this.backBtnPressed = false, 2000);
}
} else {
this.backBtnPressed = true;
setTimeout(() => this.backBtnPressed = false, 2000);
if (
this.url.indexOf('/env-detail/fan') >= 0 ||
this.url.indexOf('/env-detail/light') >= 0 ||
this.url.indexOf('/env-detail/shower') >= 0 ||
this.url.indexOf('/env-detail/waterchannel') >= 0) {
this.nav.navigateRoot('/tabs/tab-home');
return;
} else if (
this.url === '/tabs/tab-home' ||
this.url === '/tabs/tab-anal' ||
this.url === '/tabs/tab-alarm' ||
this.url === '/tabs/tab-cfg') {
this.nav.navigateRoot('/index');
return;
} else {
this.nav.back();
return;
}
}
this.nav.back();
return;
});
}
async androidBackButtonHandle() {
try {
const alert = await this.alertController.getTop();
const action = await this.actionSheetCtrl.getTop();
const popover = await this.popoverCtrl.getTop();
const modal = await this.modalCtrl.getTop();
const isOpen = await this.menuCtrl.isOpen();
if (alert) {
alert.dismiss();
} else if (action) {
action.dismiss();
} else if (popover) {
popover.dismiss();
} else if (modal) {
modal.dismiss();
} else if (isOpen) {
this.menuCtrl.close();
}
} catch (error) {
}
}
}
......@@ -63,7 +63,7 @@ export class EnvAlarmDetailPage implements OnInit {
// @ViewChild('currentItem') currentItem;
constructor(private ac: ActivatedRoute, private api: Api, public load: Load, public loadingController: LoadingController,
private alterController: AlertController, private datePipe: DatePipe, public loading: Loading,
public alterController: AlertController, private datePipe: DatePipe, public loading: Loading,
public eventService: EventService) {
}
......@@ -246,7 +246,7 @@ export class EnvAlarmDetailPage implements OnInit {
event.target.complete();
// App logic to determine if all data is loaded
// and disable the infinite scroll
await this.wait(1000);
await this.wait(500);
if (this.troubleList.length === this.detailInfoLength) {
event.target.disabled = true;
}
......@@ -379,7 +379,7 @@ export class EnvAlarmDetailPage implements OnInit {
cssClass: 'main-color',
mode: 'ios',
message: '',
duration: 1000
duration: 500
});
await loading.present();
......
......@@ -35,7 +35,7 @@ export class EnvCfgPage implements OnInit {
{alarmId: '平台', alarmValue: '平台'},
{alarmId: '平台/短信', alarmValue: '平/短'}];
constructor(public alertCtrl: AlertController, private pickerController: PickerController, private alertController: AlertController,
constructor(public alertCtrl: AlertController, private pickerController: PickerController, public alertController: AlertController,
private api: Api, private load: Load, public nav: NavController, private tf: Transfer, private ac: ActivatedRoute,
private datePipe: DatePipe, public loading: Loading) {
}
......
<ion-header>
<ion-toolbar color="dark">
<ion-toolbar color="dark" mode="ios">
<ion-buttons slot="start">
<ion-back-button mode="ios" text="" ></ion-back-button>
</ion-buttons>
......@@ -30,7 +30,7 @@
</ion-header>
<ion-content color="light">
<ion-router-outlet></ion-router-outlet>
<ion-tabs>
<ion-tabs #tabs>
<ion-tab-bar slot="top" mode="ios" style="--border: 0px;">
<ion-tab-button tab="fan" class="tabSelected ion-segment-button">
<ion-label>风机</ion-label>
......
import {Component, OnInit} from '@angular/core';
import {Component, OnInit, ViewChild} from '@angular/core';
import {Api} from '../../service/api';
import {NavController} from '@ionic/angular';
import {NavController, Platform} from '@ionic/angular';
import {ActivatedRoute} from '@angular/router';
import {Load} from '../../service/load';
import {Transfer} from '../../service/transfer';
......
......@@ -47,7 +47,7 @@ export class EnvFanPage implements OnInit {
commTmr: any;
constructor(private api: Api, private ac: ActivatedRoute, private load: Load, private alertController: AlertController,
constructor(private api: Api, private ac: ActivatedRoute, private load: Load, public alertController: AlertController,
public loading: Loading, public eventService: EventService) {
this.ac.queryParams.subscribe((data) => {
if (data && data.fieldRegionNo !== undefined && data.fieldRegionNo !== null && data.fieldRegionNo !== '') {
......
......@@ -5,6 +5,8 @@ import {Load} from '../../service/load';
import {NgxDatatableModule, ColumnMode} from '@swimlane/ngx-datatable';
import {DateFormatter} from '@angular/common/src/pipes/deprecated/intl';
import {DatePipe} from '@angular/common';
import {Constants} from '../../service/constants';
import {Loading} from '../../service/loading';
@Component({
selector: 'v-env-history',
......@@ -14,7 +16,7 @@ import {DatePipe} from '@angular/common';
export class EnvHistoryPage implements OnInit {
ColumnMode = ColumnMode;
constructor(private api: Api, private ac: ActivatedRoute, private load: Load, private datePipe: DatePipe) {
constructor(private api: Api, private ac: ActivatedRoute, private load: Load, private datePipe: DatePipe, public loading: Loading) {
}
fieldRegionNo = '';
......@@ -113,6 +115,7 @@ export class EnvHistoryPage implements OnInit {
if (time) {
this.load.toLoad('加载中...', false);
}
this.loading.presentLoading(Constants.LOADING_SHORTER, false);
const req: any = {};
req.fieldRegionNo = this.fieldRegionNo;
req.startTime = new Date().valueOf() - 8 * 3600 * 1000;
......@@ -121,6 +124,7 @@ export class EnvHistoryPage implements OnInit {
if (data) {
this.paintChart(data);
}
this.loading.closeLoading();
}]);
req.counts = 10;
......
......@@ -3,7 +3,7 @@ import {ActivatedRoute} from '@angular/router';
import {Transfer} from '../../service/transfer';
import {Api} from '../../service/api';
import {Load} from '../../service/load';
import {NavController} from '@ionic/angular';
import {ActionSheetController, AlertController, MenuController, ModalController, NavController, PopoverController} from '@ionic/angular';
import {Network} from '@ionic-native/network/ngx';
import {EventService} from '../../service/event';
......
......@@ -58,7 +58,7 @@ export class EnvLightPage implements OnInit {
commTmr: any;
constructor(private api: Api, private ac: ActivatedRoute, private load: Load, private route: ActivatedRoute,
private alertControlle: AlertController, public loading: Loading, private eventService: EventService) {
public alertControlle: AlertController, public loading: Loading, private eventService: EventService) {
}
ionViewWillLeave() {
......
import {Injectable} from '@angular/core';
import {ActionSheetController, AlertController, MenuController, ModalController, NavController, PopoverController} from '@ionic/angular';
@Injectable()
export class BackService {
tabsCanGoBack = false;
tabsParentCanGoBack = false;
constructor(public nav: NavController,
public alertCtrl: AlertController,
public modalCtrl: ModalController,
public menuCtrl: MenuController,
public actionSheetCtrl: ActionSheetController,
public popoverCtrl: PopoverController) {}
async androidBackButtonHandle(next) {
try {
const alert = await this.alertCtrl.getTop();
if (alert) {
alert.dismiss();
return;
}
const action = await this.actionSheetCtrl.getTop();
if (action) {
action.dismiss();
return;
}
const popover = await this.popoverCtrl.getTop();
if (popover) {
popover.dismiss();
return;
}
const modal = await this.modalCtrl.getTop();
if (modal) {
modal.dismiss();
return;
}
const isOpen = await this.menuCtrl.isOpen();
if (isOpen) {
this.menuCtrl.close();
return;
}
if (!this.tabsCanGoBack && !this.tabsParentCanGoBack) {
// this.native.appMinimize();
this.nav.navigateRoot('/' + next);
return;
}
} catch (error) {
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment