1

Ich möchte die lokale Benachrichtigung jedes Jahr an bestimmten Daten auslösen, aber alle Benachrichtigungen haben unterschiedliche Titel und Körper, hier ist mein Code, den ich geschrieben habe und das funktioniert perfekt, aber nur für eine Benachrichtigung und die zweite Teil ist nach Benachrichtigung meiner App-icon 1 haben immer bedeutet eine Benachrichtigung gibt, wie diese zu entfernen? ..Lokale Benachrichtigung an verschiedenen Daten Swift 3

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     // Override point for customization after application launch. 

     UIApplication.shared.statusBarStyle = .default 
      UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]){ (allowed, error) in 
       UNUserNotificationCenter.current().delegate = self 
     scheduleNotification() 
     return true 
    } 



func scheduleNotification() { 

    var date = DateComponents() 
    date.year = 2017 
    date.month = 6 
    date.day = 12 
    date.hour = 22 
    date.minute = 39 

      let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: false) 
      let content = UNMutableNotificationContent() 
      content.title = "Schedule Notification" 
      content.body = "Today is my Birthday" 
      content.sound = UNNotificationSound.default() 
      content.badge = 1 
      let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger) 
      UNUserNotificationCenter.current().removeAllPendingNotificationRequests() 
      UNUserNotificationCenter.current().add(request) {(error) in 
       if let error = error { 
        print("error: \(error)") 
       } 
    } 

Schätzen und dank im Voraus

+0

Sie müssen mehrere Benachrichtigungen planen; eine für jedes Datum erforderlich. Wenn Sie nicht möchten, dass die App-Symbol, setzen Sie nicht die "Abzeichen" Eigenschaft – Paulw11

+0

Dank @ Paulw11 so Ihre schnelle Antwort .. – King

Antwort

0

Für Wiederholungs Benachrichtigungen Sie mehrere Benachrichtigungen zu planen haben. Das kannst du so machen.

func scheduleNotification(_ title:String, body:String, dateComponents :DateComponents) {   
    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false) 
    let content = UNMutableNotificationContent() 
    content.title = title 
    content.body = body 
    content.sound = UNNotificationSound.default() 
    content.badge = 1 
    let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger) 
    UNUserNotificationCenter.current().add(request) {(error) in 
     if let error = error { 
      print("error: \(error)") 
     } 
    } 
} 

Und verwenden Sie die obige Funktion, um mehrere Benachrichtigungen wie folgt zu planen.

var date = DateComponents() 
date.year = 2017 
date.month = 6 
date.day = 12 
date.hour = 22 
date.minute = 39  

UNUserNotificationCenter.current().removeAllPendingNotificationRequests() 
scheduleNotification("Schedule Notification", body: "Today is my Birthday", dateComponents: date) 
scheduleNotification("Schedule Notification 2", body: "Today is my Birthday 2", dateComponents: date2) 
scheduleNotification("Schedule Notification 3", body: "Today is my Birthday 3", dateComponents: date3) 

Zweite Teil Ihrer Frage, wie das Abzeichen Symbol zu entfernen. Fügen Sie den folgenden Code irgendwo in Ihrer Anwendung einDidFinishLaunching oder applicationDidBecomeActive.

UIApplication.shared.applicationIconBadgeNumber = 0; 
+0

Vielen Dank @Bilal für Ihre schnelle Antwort und Lösung .... – King

+0

ist es nicht arbeiten, ich erstelle neue Funktion namens notificationLauncher() und in dieser Funktion erstelle ich drei verschiedene Datumskomponenten und dann rief ich scheduleNotification Funktion mit Parametern von Titel, Körper und Komponenten und dann rief ich diese Funktion in App Delegate applicationDidFinisgLaunchingWithOptions :( – King

+0

nur einzelne Benachrichtigung funktioniert nicht multiple auch wenn ich mehrere Funktionen versuche, mehrere Benachrichtigungen aufzurufen Ich bekomme nicht einmal eine Benachrichtigung :( – King

Verwandte Themen