簡體   English   中英

如何在 iPhone 中刪除本地通知

[英]How to delete a local notification in iPhone

我正在制作一個設置本地通知的應用程序。

謝天謝地,我能夠設置本地通知,但我不知道如何刪除我的應用程序設置的通知。

XCode 確實提供了使用removeAllNotifications進行刪除的功能,但您無法刪除應用程序設置的特定通知。

非常感謝。

你問過這個問題兩次,所以我正在回答這兩個問題,希望能找到你:

使用以下代碼取消所有本地通知:

[[UIApplication sharedApplication] cancelAllLocalNotifications];

使用以下代碼行取消一個本地通知:

[[UIApplication sharedApplication] cancelLocalNotification:theNotification];

其中theNotificationUILocalNotification對象,因此為了取消特定通知,您需要保留它的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM