Katzer Local notification plugin
我可以设置和使用单一通知。
According to the description可以使用
设置多个通知 cordova.plugins.notification.local.schedule([{
id: 1,
text: "Multi Notification 1",
sound: isAndroid ? 'file://sound.mp3' : 'file://beep.caf',
data: { secret:key }
},{
id: 2,
title: "Local Notification Example",
text: "Multi Notification 2",
icon: "http://sciactive.com/pnotify/includes/github-icon.png"
}]);
但我的通知是动态的,它的总数也是动态的。例如,假设total
是保存通知总数的变量。 total
可以是1或10或30等。
现在如何为它构建数组?我试过这个
for(i=0;i<total;i++)
{
// ......... calculate bhhour,vmin,vsec etc. ............. //
time_for_noti=new Date(year,month-1,parseInt(i),vhour,vmin,vsec);
arr[i]=' id: app_'+i+' , title: ' +i+' - '+time_for_noti+',text: app alarm.,sound: null,at : '+time_for_noti+' ';
}
然后
cordova.plugins.notification.local.schedule(arr);
应用程序挂起一段时间,比如15-20秒,然后崩溃。然后我尝试了括号&#39; {}&#39;字符串之前和之后。
for(i=0;i<total;i++)
{
// ......... calculate bhhour,vmin,vsec etc. ............. //
time_for_noti=new Date(year,month-1,parseInt(i),vhour,vmin,vsec);
arr[i]='{ id: app_'+i+' , title: ' +i+' - '+time_for_noti+',text: app alarm.,sound: null,at : '+time_for_noti+' }';
}
同样的结果。应用程序在计划行执行后10-15秒后崩溃。我也尝试手动制作一个巨大的字符串,如
ex='[{ id:........} , {..........}]';
然后
cordova.plugins.notification.local.schedule(ex);
在此行执行后,它立即崩溃了应用程序。我知道这是一个愚蠢的想法,但绝望的时候。
我做错了什么?如何动态发出此多重警报,总共20-40通知?我错过了什么?
答案 0 :(得分:0)
我认为数组中的每个元素都需要是一个对象,而不是一个字符串。你尝试过这样的事吗?
arr[i]={ id: i, text: "Multi Notification " + i };
也就是说,用大括号替换对象周围的引号。
我自己无法尝试,因为我使用的Meteor版本似乎没有同样的方式。
答案 1 :(得分:0)
无需添加多个通知。 我已经发出1次通知的声音,直到用户点击它为止。 并提供更多警报功能,我会在触发通知时将应用程序带到前台。
看看https://github.com/vasani-arpit/cordova-plugin-local-notifications/blob/master/README.md。它是从Katzer Local notification plugin分叉的,所以所有的语法都是一样的。
答案 2 :(得分:0)
这是我的解决方案,它运作良好:
var notiflist = [];
for(var i = 0; i < data.length; i++) {
notiflist[i] = { id: i, title: data[i].Title, text: data[i].TextPush };
}
cordova.plugins.notification.local.schedule(notiflist);