我安排了一個本地通知,在用戶輸入特定地理位置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