Я использую ионный каркас для создания приложения. Мое приложение соответствует расписанию рейсов, и все работает нормально. Я поставил кнопку, эта кнопка, когда пользователь нажимает на кнопку, он будет получать локальные уведомления о статусе рейса, который он хочет. Я использовал для плагинов Cordova локальные уведомления и Фоновый режим . Я использую плагин «Фоновый режим», чтобы приложение выполняло бесконечное фоновое выполнение для проверки статуса рейса, а затем отправляю локальное уведомление пользователю. Я использовал выражение if для проверки статуса рейса, если пришло push-уведомление, если не продолжать цикл. Даже я использовал установленный Интервал, чтобы поддерживать перезагрузку данных для проверки статуса рейса. Все те шаги, которые я сделал, я не получил никакого уведомления, даже если статус рейса прибыл
полный код
export class FlightserachdetailsPage implements OnInit {
public flight: any
public myFlag = true;
callsign = null
airport = null
status = null
aircraft = null
airline = null
time = null
logo = null
id: any
myStatus: boolean;
constructor(private http: HTTP, public loadingController: LoadingController,
private nav: NavController, private activatedRoute: ActivatedRoute, private backgroundMode: BackgroundMode
, private localNotifications: LocalNotifications, public alertController: AlertController) {
this.activatedRoute.params.subscribe((params) => {
this.callsign = params['callsign'];
this.airport = params['airport'];
this.time = params['time'];
this.aircraft = params['aircraft'];
this.status = params['status'];
this.airline = params['airline'];
this.logo = params['logo'];
this.id = params['id'];
if (this.status == "landed") {
this.myFlag = true
console.log(this.myFlag)
} else {
this.myFlag = false
}
if (this.status == "estimated") {
this.myStatus = true
console.log(this.myFlag)
} else {
this.myStatus = false
}
});
this.backgroundMode.enable()
}
ngOnInit() {
}
///Alert confirm to receive notification
async RecNotifi() {
const alert = await this.alertController.create({
header: 'Confirm!',
message: 'Are you sure you do want receive notification about flight ' + this.callsign,
buttons: [
{
text: 'Cancel',
role: 'cancel',
cssClass: 'secondary',
handler: (blah) => {
console.log('Confirm Cancel: blah');
}
}, {
text: 'Okay',
handler: () => {
console.log('Confirm Okay');
this.ActiveNotif()
}
}
]
});
await alert.present();
}
//// execute to active code check for flight status
async ActiveNotif() {
this.http.get('xxxxxxxxxxxxxx.json?flightId=' + this.id + '', {}, {})
.then(data => {
let FlightDetails = JSON.parse(data.data).result.response.data.flight
let identification = FlightDetails.identification.callsign
let status = FlightDetails.status.generic.status.text
if (status == "landed") {
this.localNotifications.schedule({
title: 'Your flight has arrived',
text: 'Your flight '+identification + 'is arrived',
foreground: true
});
}
setInterval(()=> {
this.ActiveNotif()
}, 4000);
console.log('notifiction is running ',data.data)
})
}
navigate(id, callsign, status) {
this.nav.navigateForward(`/map-track-befor/${id}/${callsign}/${status}`);
}
handleImgError(ev: any, item: any) {
let source = ev.srcElement;
let imgSrc = `/no__logo.png`;
console.log(imgSrc)
source.src = imgSrc;
}
}
Есть идеи, пожалуйста?