[英]How to delete a local notification in iPhone
我正在制作一個設置本地通知的應用程序。
謝天謝地,我能夠設置本地通知,但我不知道如何刪除我的應用程序設置的通知。
XCode 確實提供了使用removeAllNotifications
進行刪除的功能,但您無法刪除應用程序設置的特定通知。
非常感謝。
你問過這個問題兩次,所以我正在回答這兩個問題,希望能找到你:
使用以下代碼取消所有本地通知:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
使用以下代碼行取消一個本地通知:
[[UIApplication sharedApplication] cancelLocalNotification:theNotification];
其中theNotification
是UILocalNotification
對象,因此為了取消特定通知,您需要保留它的UILocalNotification
。
您可以在Apple的文檔中找到更多內容。
[[UIApplication sharedApplication] cancelLocalNotification:notification]
你好,看,在swift你可以創建一個本地通知:
var notif = UILocalNotification()
notif.timeZone = NSTimeZone.defaultTimeZone()
let morningOfChristmasComponents = NSDateComponents()
morningOfChristmasComponents.year = 2016
morningOfChristmasComponents.month = 03
morningOfChristmasComponents.day = 30
morningOfChristmasComponents.hour = 15
morningOfChristmasComponents.minute = 59
morningOfChristmasComponents.second = 0
let morningOfChristmas = NSCalendar.currentCalendar().dateFromComponents(morningOfChristmasComponents)!
let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.LongStyle
formatter.timeStyle = .MediumStyle
let dateString = formatter.stringFromDate(morningOfChristmas)
notif.fireDate = morningOfChristmas
notif.alertBody = "alarma wolf"
notif.userInfo = ["identificador": "wolf"]
UIApplication.sharedApplication().scheduleLocalNotification(notif)
print("alarma fijada para \(dateString)")
loo userInfo是你本地通知的一個indeitifer,現在,如果你想刪除一個特定的本地通知,請嘗試:
var uidtodelete = "wolf"
var app:UIApplication = UIApplication.sharedApplication()
for oneEvent in app.scheduledLocalNotifications! {
var notification = oneEvent as UILocalNotification
let userInfoCurrent = notification.userInfo! as! [String:AnyObject]
let uid = userInfoCurrent["identificador"]! as! String
if uid == uidtodelete {
//Cancelling local notification
app.cancelLocalNotification(notification)
break;
}
}
看看上面的方法,userInfoCurrent是你本地通知的標識符,uitodelete是一個字符串,包含你要刪除的locla通知的特定鍵...
aaaa ...如果要刪除可以使用的所有本地通知
UIApplication.sharedApplication()。cancelAllLocalNotifications()
OKI
我希望你能為自己或別人提供這些信息。
再見,並原諒我糟糕的英語
您可以通過以下功能取消通知: [[UIApplication sharedApplication]cancelNotification:object Of your UILocalNotification]
如果您使用的是自 iOS 10.0 起可用的用戶通知框架,鑒於您提供的標識符為foo
:
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: "foo")
UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: "foo")
或者在 Objective-C 中:
[[UNUserNotificationCenter currentNotificationCenter] removePendingNotificationRequestsWithIdentifiers:@[@"foo"]];
[[UNUserNotificationCenter currentNotificationCenter] removeDeliveredNotificationsWithIdentifiers:@[@"foo"]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.