我已使用以下命令将Ionic 3本地通知插件添加到我的项目中:
ionic cordova plugin add cordova-plugin-local-notification
npm install --save @ionic-native/local-notifications
我在构造函数中添加了所有依赖项。
我的代码是:
let year = new Date().getFullYear();
let month = new Date().getMonth();
let day = new Date().getDate();
let time1 = new Date(year, month, day, 10, 00, 0, 0);
let time2 = new Date(year, month, day, 12, 00, 0, 0);
this.localNotifications.schedule([
{
id: 1,
title: 'My first notification',
text: 'First notification test one',
trigger: { at: new Date(time1) },
data: {"id": 1, "name": "Mr. A"}
},
{
id: 2,
title: 'My Second notification',
text: 'Second notification on 12 pm',
trigger: { at: new Date(time2) },
data: {"id": 2, "name": "Mr. B"}
}
]);
它适用于当天的应用启动,但我想在指定时间发送每天的通知。
我特别想要本地通知,而不是推送通知。
答案 0 :(得分:0)
要进行每日重复通知,您需要使用every:"day"
(或以分钟为单位的时间间隔:every: 24*60
)和firstAt
属性,其中包含通知的日期第一次触发。试试这段代码
let year = new Date().getFullYear();
let month = new Date().getMonth();
let day = new Date().getDate();
let time1 = new Date(year, month, day, 10, 00, 0, 0);
let time2 = new Date(year, month, day, 12, 00, 0, 0);
this.localNotifications.schedule([
{
id: 1,
title: 'My first notification',
text: 'First notification test one',
firstAt: new Date(time1),
every: 24*60,
data: {"id": 1, "name": "Mr. A"}
},
{
id: 2,
title: 'My Second notification',
text: 'Second notification on 12 pm',
firstAt: new Date(time2),
every: 24*60,
data: {"id": 2, "name": "Mr. B"}
}
]);
答案 1 :(得分:0)
要进行每日重复通知,您需要在第一次触发通知的日期上使用every:"day"
和firstAt
属性。
注意:与Ionic 3中的cordova插件不同,firstAt
属性需要包装在trigger
属性中。您可以在Ionic Local Notification Documentation中找到更多信息。
尝试此代码
let year = new Date().getFullYear();
let month = new Date().getMonth();
let day = new Date().getDate();
let time1 = new Date(year, month, day, 10, 00, 0, 0);
let time2 = new Date(year, month, day, 12, 00, 0, 0);
this.localNotifications.schedule([
{
id: 1,
title: 'My first notification',
text: 'First notification test one',
trigger: {firstAt: new Date(time1)},
every: every: "day"
data: {"id": 1, "name": "Mr. A"}
},
{
id: 2,
title: 'My Second notification',
text: 'Second notification on 12 pm',
trigger: {firstAt: new Date(time2)},
every: "day", //"day","hour","minute","week" can be used
data: {"id": 2, "name": "Mr. B"}
}
]);
答案 2 :(得分:0)
所以我自己找到了解决方案。这是LocalNotifications程序包的类型文件中的错误。
选项的正确用法如下:
{
id: 1,
title: 'Notification Title',
text: 'Your notification text',
foreground: true,
trigger: {
every: {
hour: 8,
minute: 15
}
}
}
只需进入您的node_modules / @ ionic-native / local-notifications中,找到index.d.ts并找到显示“?”的行:ELocalNotificationTriggerUnit并将其更改为“?”:现在应该可以正常工作了。
答案 3 :(得分:-1)
在他们的代码库中显示(注释),您可以通过执行此操作来实现
this.localNotifications.schedule({
text: 'Delayed ILocalNotification',
trigger: {at: new Date(new Date().getTime() + 3600)},
led: 'FF0000',
sound: null});
现在,如果您必须每天同时发送通知,则可以:
1-安排十分之一的通知,并在用户每次打开您的应用时进行检查
2-每次用户打开已收到的通知时重新安排通知。