如何删除已显示的通知(电话栏上的预先发送)但用户没有响应?使用cordova https://github.com/katzer/cordova-plugin-local-notifications/
我检查了不同的方法,但没有获得它的任何属性或功能。虽然在注册时
window.plugin.notification.local.add({
id: String, // A unique id of the notification
date: Date, // This expects a date object
message: String, // The message that is displayed
title: String, // The title of the message
repeat: String, // Either 'secondly', 'minutely', 'hourly', 'daily', 'weekly', 'monthly' or 'yearly'
badge: Number, // Displays number badge to notification
sound: String, // A sound to be played
json: String, // Data to be passed through the notification
autoCancel: Boolean, // Setting this flag and the notification is automatically cancelled when the user clicks it
ongoing: Boolean, // Prevent clearing of notification (Android only)
}, callback, scope);
您可以选择
autoCancel: Boolean, // Setting this flag and the notification is automatically cancelled when the user clicks it
这是有效的,但我如何使用编码删除。
我尝试取消按ID
function cancelLocalNotificationById(id){
window.plugin.notification.local.cancel(id, function(){
alert("cancel callback", id);
});
}
}
这将在onTrigger中注册。并且id取消将在5秒后运行
function onTrigger(){
window.plugin.notification.local.ontrigger = function (id, state, json) {
alert("onTrigger fired");
alert(id);
// Cancel alert after 5 seconds...
timeouts.push(setTimeout(function(){
cancelLocalNotificationById(id);
alert(id);
//alert("cancel reslut"+cancel.status);
},5000));
}
答案 0 :(得分:1)
您应该使用取消方法通过其ID删除通知。从插件文档:
window.plugin.notification.local.cancel(ID, function () {
// The notification has been cancelled
}, scope);
其中 id 只是您要解雇的通知的ID。
正如您所提到的, autoCancel 是在用户点击通知时自动取消 。如果不是这样,您需要在处理该通知的回调时从Cordova中取消它。
<强>更新强>
事实证明你正在使用
new Date()
作为添加通知的 id ,这是因为存在此限制
的原因注意:在Android上,通知ID必须是一个字符串即可 转换为数字。如果ID格式无效,则格式为 忽略,但取消通知将失败。
和new Date()
会产生类似
Wed Jan 07 2015 14:16:10 GMT+0200 (FLE Standard Time)
不能转换为数字。
答案 1 :(得分:0)
我认为这里的术语有些混乱。 &#34;通知&#34;用于表示操作系统调度一系列重复消息的指令,它用于指代这些消息的单个实例。
autoCancel属性用于在用户点击它以启动您的应用时自动从Android消息栏和窗口中删除通知消息的单个实例。如果将此设置为false,则应用程序图标在这些区域中仍然可见,直到用户手动删除它为止。
回答原始问题:Katzer的插件无法删除与autoCancel属性以外的通知实例关联的应用图标。