我正在使用Local Notifications插件。我需要每天上午10点1分触发通知。我使用下面的代码。当我在同一天在不同的时间进行测试时工作正常。让我们说16H 5Min
。但它不会在第二天自动运行。我可以保证所有数据都存在于下一个数据中。但似乎我在这里做错了什么。请告诉我错误在哪里?
Note:
即使在同一天,如果我们将应用程序置于大约1+ hours
左右的后台模式,这也无效。
注意:在调试模式下工作正常。我不知道问题出在哪里。任何线索?
app.component.ts
constructor(){
this.initializeApp();
}
initializeApp() {
try {
this.platform.ready().then(() => {
timer(60000, 60000).subscribe(val => {
const hours = moment().format("H");
const minutes = moment().format("m");
if (hours == '10' && minutes == '1')
this.scheduleNotification();
});
});
}
catch (err) {
console.log(err);
}
}
scheduleNotification() {
let firstNotificationTime = new Date();
firstNotificationTime.setDate(firstNotificationTime.getDate());
firstNotificationTime.setHours(10);
firstNotificationTime.setMinutes(1);
firstNotificationTime.setSeconds(0);
forEach(this.authenticationProvider.member.projects, (project: Project) => {
forEach(project.transactions, (transaction: Transaction) => {
if (transaction.dueOn != null && moment(transaction.dueOn).format('YYYY-MM-DD') == moment().format('YYYY-MM-DD')) {
const id = random(1, 1000);
this.localNotifications.schedule({
id: id,
title: 'Due Today',
text: `Payment for ${transaction.category.name}: ${transaction.description} of ${Number(transaction.totalPrice).toLocaleString()} is due today.`,
data: { transaction: transaction, project: project },
at: firstNotificationTime,
});
}
});
});
}
答案 0 :(得分:0)
从您的代码编写方式来看,1
将永远是今天这段代码运行的日期:
firstNotificationTime
在接下来的几行中,您可以更改小时,分钟和秒,但您永远不会更改日期。您必须将日期提交到第二天才能在第二天收到通知。
除此之外,你可以摆脱这一行:
let firstNotificationTime = new Date();
除了将日期设置为自身之外,别无其他。