我安排了一个本地通知,在用户输入特定地理位置6分钟后关闭,前提是他们仍然在此位置。如何更新/删除通知中心的通知?
此定像这样:
UILocalNotification n = new UILocalNotification();
n.FireDate = NSDate.FromTimeIntervalSinceNow(360);
n.AlertAction = "My notification";
n.AlertBody = "Notification body";
UIApplication.SharedApplication.ScheduleLocalNotification(n);
在一些情况下,某些geolocations重叠,并且用户将接收一个以上的通知。发生这种情况时,我希望能够更新通知中心的通知以反映此情况。
我被告知通知中心的直接更新在iOS9中是不可能的,因此要实现我想要的操作,我需要删除通知并将其替换为新的。
从几个小时的谷歌搜索,我发现了以下方法,所有这些都没有奏效。
UIApplication.SharedApplication.CancelAllLocalNotifications();
此功能似乎没有在当前版本的iOS中执行任何操作。
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 1;
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
一些人提到,必须先设置证件号码,然后将其设置为零以从通知中心删除通知。这也没有效果。
foreach(UILocalNotification n in UIApplication.SharedApplication.ScheduledLocalNotifications)
{
UIApplication.SharedApplication.CancelLocalNotification(n);
}
对于一些发现CancelAllNotifications
未奏效的尝试上述方法。这似乎也没有效果。如果有帮助,我试图在通知中心显示通知的时候记录一个计数为ScheduledLocalNotifications
,但数组回到空白。
List<UILocalNotifications> notifications = new List<UILocalNotifications>();
...
UIApplication.SharedApplication.ScheduleLocalNotification(n);
notifications.Add(n);
...
foreach(UILocalNotification n in notifications)
{
UIApplication.SharedApplication.CancelLocalNotification(n);
}
另一个用户建议保留原始通知,然后使用它们在需要时稍后取消它们。再次,我没有这个运气。
在Objective-C或Swift中的答案也将非常感谢,我可以理解这些语言。
你想删除特定的通知或程序的所有其他通知来自通知中心 – Chetan
@Chetan我想删除来自我的应用的所有其他通知。 – Kizari
您正试图在后台或前台删除通知 – Chetan