为了让您概述我的工作,我有一个使用Firebase作为数据库的离子移动应用程序。IM实施的功能之一是本地通知。这是我的代码
html代码
<button ion-button full (click)="scheduleNotification()">schedule</button>
<button ion-button full (click)="scheduleNotification2()">schedule</button>
因此,这是HTML代码,其中一个按钮允许您单击或安排通知
打字稿代码
import { Component } from '@angular/core';
import { NavController, Platform} from 'ionic-angular';
import { LocalNotifications } from '@ionic-native/local-notifications';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController, private
localNotif:LocalNotifications, private platform:Platform) {
}
scheduleNotification() {
this.platform.ready().then(()=>{
this.localNotif.schedule({
title:'Attention',
text:'Rk notification',
at: new Date(new Date().getTime() + 1 * 5000),
});
});
}
scheduleNotification2() {
this.platform.ready().then(()=>{
this.localNotif.schedule({
title:'Attention',
text:'Rk notification',
at: new Date(new Date().getTime() + 1 * 5000),
});
});
}
}
因此,这里的问题是,当我单击两个按钮以弹出通知时,它只会覆盖另一个。因此,它仅显示一个通知。我想展示两者而不经过。我该怎么做?
您需要将id
传递给您的localNotification
,它必须是一个数字,默认情况下它是0,因此,如果您不声明ID,则会覆盖先前的计划通知。
如果用户能够操纵通知(例如编辑,删除,更新(,我建议在某个地方保存此ID,以便用户可以这样做。
由于ID需要是唯一的,因此有很多生成ID的方法,因为我不知道您的用户会多久创建通知,我将使用最简单的生成Math.random()
的方法。
scheduleNotification() {
this.platform.ready().then(()=>{
this.localNotif.schedule({
id: Math.round(Math.random() * 1000000)), // this'll generate an id of 7 random digits
title:'Attention',
text:'Rk notification',
at: new Date(new Date().getTime() + 1 * 5000),
});
});
}
我可以给出的另一个建议是在可能的最小时间单元中操纵操纵时间,请始终尝试使用毫秒或秒。
希望这个帮助。
您可以使用警报conrtroller局部注释的限制 访问https://ionicframework.com/docs/api/components/alert/alertcontroller/