Мой друг и я пытались разработать приложение с Cordova как школьный проект. У нас нет большого опыта работы с JavaScript, но у нас есть все для работы, за исключением части уведомлений, которая очень важна в нашей идее приложения. Мы застряли уже больше недели.
Идея проста, мы хотим, чтобы пользователь указал, в какие временные отметки он хочет получать напоминания о приеме лекарств. Мы заставили его работать для первого уведомления, которое добавляет пользователь, но мы хотим, чтобы пользователь мог добавить несколько напоминаний. Мы решили сделать это, отменив все уведомления, а затем добавив их снова, когда пользователь добавит второе или третье уведомление. Но похоже, что мы не можем заставить работать отменяющую часть.
for(const day of reminder.days.value){
for(const time of reminder.times){
var idcounter = localStorage.getItem('idcounter');
if (idcounter === null) {
idcounter = 0;
} else {
idcounter++;
}
localStorage.setItem("idcounter", idcounter);
ids.push(idcounter);
var dt = new getNextDayOfTheWeek(day, new Date(Mon Jan 01 2020 ${time}));
var pastdt = dt.getDate() - 7;
dt.setDate(pastdt);
add_reminder(idcounter, dt, medication, affliction)
console.log(idcounter, dt, medication, affliction);
}
reminder.ids = ids;
Функция расписания:
function schedule(id, schedule_time, medication, affliction) {
cordova.plugins.notification.local.schedule({
id: id,
title: "Nu är det dags att ta en dos",
text: "Ta " + medication + " mot " + affliction + " nu.",
smallIcon: "../images/DosAvi_badge.png",
icon: "../images/DosAvi_icon.png",
foreground: true,
trigger: {
firstAt: schedule_time,
every: 'week', count: 3000
}
});
}
А затем отмена:
function clearall() {
itemsArray = JSON.parse(localStorage.getItem('items'))
if(devicereadytrue) {
cordova.plugins.notification.local.getIds(function(ids) {
notification.local.cancel(ids);
}, cordova.plugins);
cordova.plugins.notification.local.getTriggeredIds(function(ids) {
notification.local.clear(ids);
}, cordova.plugins);
}
localStorage.setItem("idcounter", 0);
itemsArray.splice(0)
localStorage.setItem('items', JSON.stringify(itemsArray))
ul.innerHTML = "";
}
Мы должны сделать это очень скоро. Вся помощь приветствуется.