Lokale Benachrichtigungen mit schnellen Aktionen

Dieses Tutorial ist für X-Code aktualisiert 7.3 & schnell 2.2

In iOS 8 Apple startete interaktive lokale Meldungen. Anstatt nur den Text mit den lokalen Melde zeigt jetzt können Sie einige schnelle Aktionen nach Lesen des Textes zu nehmen. Wenn Sie wollen einfach nur eine einfache Mitteilung ohne Aktion zu erstellen, dann überprüfe mein Zeitplan & umplanen lokale Benachrichtigung Tutorial hier. Wenn Sie den lokalen Melde mit schnellen Aktionen erfahren wollen, dann lesen Sie weiter.

  1. Zunächst lässt sich die x-Code-Projekt wie gewohnt eingestellt. Erstellen Sie neue einheitliche Sicht Anwendung X-Code-Projekt. Stellen Sie Projektnamen zu Benachrichtigungsaktionen & speichern Sie sie auf dem Desktop.

neue x-Code-Projekt

2. Zum Hauptstoryboard und wählen Sie View-Controller. Legen Sie seine Größe iPhone 4-Zoll- im Abschnitt Attribut.

Set-Größe auf das iPhone 4 Zoll 3. In Datumsauswahl im unteren Bereich der Ansicht-Controller, hinzufügen Textfeld mit einer Breite 200 und fügen Sie Taste wie folgt.

hinzufügen Textfeld, Schaltfläche & Datumsauswahl

4. Verbinden Textfeld als Auslass-Controller schnellen Datei bewerten

verbinden Textfeld als Auslass

5. Schließen Sie Datumsauswahl als Auslass-Controller schnellen Datei bewerten

Datumsauswahl als Steckdose an

6. Bevor wir sparen lokale Benachrichtigung erstellen wir Benachrichtigungsaktionen und um Erlaubnis fragen, um Benachrichtigungen zu zeigen. Zum app-Delegaten schnelle Datei und fügen Sie den folgenden Code in tat Finish startet mit Optionen Methode

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 1
let doNothingAction = UIMutableUserNotificationAction()
// 2
doNothingAction.identifier = “justInform”
// 3
doNothingAction.title = “Thanks, Got it”
// 4
doNothingAction.activationMode = UIUserNotificationActivationMode.Background
// 5
doNothingAction.destructive = false
// 6
doNothingAction.authenticationRequired = false
return true

}
  1. Erstellen ersten Mitteilung Aktions
  2. Legen Sie seine Kennung an jedem String-Wert. Dies ist ein Bezeichner nur als Tableview Zellkennung oder segue Kennung. So sollte eindeutig sein. Nicht festgelegt elbe Kennung zwei verschiedene Benachrichtigungsaktionen. Und Kennung einzigen kontinuierlichen Wort. Es ist kein Platz in Bezeichnerstring.
  3. Set Benachrichtigung Aktionen Schaltfläche Titel.
  4. Nach dem Drücken der Taste; Sie zum Handeln im Hintergrundmodus oder Vordergrundmodus ausgeführt werden soll. App wird im Vordergrund Modus zu öffnen & App Hintergrundmodus nicht öffnen in.
  5. Wenn diese Aktion ausführt, nicht umkehrbare Aktion dann zu der in destruktiven Modus anzuzeigen brauchen.
  6. Für diese Aktion auszuführen muss der Benutzer muss das Telefon zu entsperren oder können Sie Aktion ausführen, ohne die Erschließung des Telefons.

7. Nun erstellen 3 weitere Mitteilung Maßnahmen wie folgt

	func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 1
let doNothingAction = UIMutableUserNotificationAction()
// 2
doNothingAction.identifier = “justInform”
// 3
doNothingAction.title = “Thanks, Got it”
// 4
doNothingAction.activationMode = UIUserNotificationActivationMode.Background
// 5
doNothingAction.destructive = false
// 6
doNothingAction.authenticationRequired = false

// 7
let remindAction = UIMutableUserNotificationAction()

remindAction.identifier = "remindAgain"

remindAction.title = "Remind in 30 min"

remindAction.activationMode = UIUserNotificationActivationMode.Background

remindAction.destructive = false

remindAction.authenticationRequired = false


let completedAction = UIMutableUserNotificationAction()

completedAction.identifier = "completed"

completedAction.title = "Completed task"

completedAction.activationMode = UIUserNotificationActivationMode.Background

completedAction.destructive = false

completedAction.authenticationRequired = true


let deleteAction = UIMutableUserNotificationAction()

deleteAction.identifier = "delete"

deleteAction.title = "Delete reminder"

deleteAction.activationMode = UIUserNotificationActivationMode.Background

deleteAction.destructive = true

deleteAction.authenticationRequired = true

return true

}

8. Direkt unter Löschaktion zu erstellen Kategorien für Aktionen. Dies ist nicht optional. Wenn Sie Aktionen verwenden Sie möchten, dass Sie Kategorien erstellen müssen

deleteAction.authenticationRequired = true

// 1
let reminderCategory = UIMutableUserNotificationCategory()
// 2
reminderCategory.identifier = "quickAction"
// 3
reminderCategory.setActions([doNothingAction, remindAction, completedAction, deleteAction], forContext: UIUserNotificationActionContext.Default)
// 4
reminderCategory.setActions([remindAction, deleteAction], forContext: UIUserNotificationActionContext.Minimal)
  1. Erstellen Mitteilung Kategorie.
  2. Legen Sie seine Kennung an jedem String-Wert. Dieselben Regeln gelten hier als Benachrichtigungsaktionskennung.
  3. Bei Bekanntgabe Handlungskontext ist standardmäßig dann Ihnen, alle Mitteilung Handlungen zeigen wollen. Sie können maximal eingestellt 4 Benachrichtigungsaktionen. Sie werden in dieser Reihenfolge angezeigt werden. Wenn Sie 5. Maßnahmen Benachrichtigung legen Sie dann wird es nicht angezeigt werden.
  4. Wenn Benachrichtigungsaktion Rahmen minimal ist, dann können Sie nur maximal zwei Aktionen zeigen. Diese werden auf iOS-Benachrichtigungen angezeigt werden, wenn Sie die Anzeige unverzüglich nach Erhalt zu ziehen. Oder wenn Sie alte Benachrichtigungs schieben, um dann nach links können Sie zwei Aktionen auch sehen,.

9. Einfach folgenden Kategorien zu registrieren, diese Aktionen & Kategorien in lokalen Melde. Dann melden Sie den lokalen Melde wie folgt.

reminderCategory.setActions([remindAction, deleteAction], forContext: UIUserNotificationActionContext.Minimal)
// 1
let categories = Set<UIUserNotificationCategory>(arrayLiteral: reminderCategory)
// 2
let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: categories)
// 3
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
// 4
application.applicationIconBadgeNumber = 0

return true

}
  1. Erstellen Sie eine Reihe von Kategorien aus einzelnen Kategorie. Hier können Sie mehrere Kategorien zu speichern, wenn Sie möchten,.
  2. Erstellen Sie Benachrichtigungseinstellungen mit allen Arten (wachsam, Abzeichen & Klangbenachrichtigungstyp) & Speichern von Kategorien festgelegt.
  3. Registrieren Sie sich diese Benachrichtigungseinstellungen mit der Anwendung.
  4. Beim Öffnen App; Reset Ausweisnummer auf Null.

10. Der gesamte Code sieht folgendermaßen aus

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 1
let doNothingAction = UIMutableUserNotificationAction()
// 2
doNothingAction.identifier = “justInform”
// 3
doNothingAction.title = “Thanks, Got it”
// 4
doNothingAction.activationMode = UIUserNotificationActivationMode.Background
// 5
doNothingAction.destructive = false
// 6
doNothingAction.authenticationRequired = false

// 7
let remindAction = UIMutableUserNotificationAction()

remindAction.identifier = "remindAgain"

remindAction.title = "Remind in 30 min"

remindAction.activationMode = UIUserNotificationActivationMode.Background

remindAction.destructive = false

remindAction.authenticationRequired = false


let completedAction = UIMutableUserNotificationAction()

completedAction.identifier = "completed"

completedAction.title = "Completed task"

completedAction.activationMode = UIUserNotificationActivationMode.Background

completedAction.destructive = false

completedAction.authenticationRequired = true


let deleteAction = UIMutableUserNotificationAction()

deleteAction.identifier = "delete"

deleteAction.title = "Delete reminder"

deleteAction.activationMode = UIUserNotificationActivationMode.Background

deleteAction.destructive = true

deleteAction.authenticationRequired = true

// 1
let reminderCategory = UIMutableUserNotificationCategory()
// 2
reminderCategory.identifier = "quickAction"
// 3
reminderCategory.setActions([doNothingAction, remindAction, completedAction, deleteAction], forContext: UIUserNotificationActionContext.Default)
// 4
reminderCategory.setActions([remindAction, deleteAction], forContext: UIUserNotificationActionContext.Minimal)
// 1
let categories = Set<UIUserNotificationCategory>(arrayLiteral: reminderCategory)
// 2
let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: categories)
// 3
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
// 4
application.applicationIconBadgeNumber = 0

return true

}

11. Schließen-Taste, wie Maßnahmen zur Steuerung swift-Datei anzeigen

Verbindungstaste als Aktion

12. Befestigen Sie den Fehler in der zweiten in Datumsauswahl mit folgenden Verfahren

 // 12
 func fixedNotificationDate(dateToFix: NSDate) -> NSDate {
let dateComponents: NSDateComponents = NSCalendar.currentCalendar().components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year, NSCalendarUnit.Hour, NSCalendarUnit.Minute], fromDate: dateToFix)

dateComponents.second = 0

let fixedDate: NSDate = NSCalendar.currentCalendar().dateFromComponents(dateComponents)!

return fixedDate

}

13. Erstellen Sie lokale Benachrichtigung im eingestellten Erinnerungs gedrückt Verfahren wie folgt

@IBAction func setReminderPressed(sender: UIButton) {

let notification = UILocalNotification()

notification.fireDate = fixedNotificationDate(datePicker.date)

notification.timeZone = NSTimeZone.defaultTimeZone()

notification.applicationIconBadgeNumber = 1

if textField.text == "" {

    notification.alertBody = "Start cooking dinner"

}
else {

    notification.alertBody = textField.text

}

// 1
notification.alertAction = "View reminder"
// 2
notification.category = "quickAction"
// 3
notification.soundName = UILocalNotificationDefaultSoundName

UIApplication.sharedApplication().scheduleLocalNotification(notification)

}

Ich werde nur auf die Unterschiede zu zeigen planen oder neu planen lokale Benachrichtigung Lernprogramm

  1. Dieser Teil ist optional. Wenn Sie diese Aktion nicht setzen, dann würde immer noch ein Knopf an erster Stelle angezeigt werden. Es wird als "Open" genannt werden & es ist nur öffnet, wenn gedrückt App. Ich Umbenennen der Schaltfläche "Ansicht Erinnerung".
  2. Dies ist, wo Sie eine Benachrichtigung Kategorie eingestellt. Wenn Sie mehrere Kategorien haben dann jeweils ihre eigenen eindeutigen Bezeichner haben. Das kann hier eingestellt werden.
  3. Da bin ich mit Sound-Benachrichtigung; Ich bin auch Einstellung, die Melodie für Sound-Benachrichtigung verwendet werden soll. Ich bin einfach mit den Standardabstimmung.

14. Führen Sie die Anwendung in iPhone 5s & erinnerung. Standardbenachrichtigungseinstellung ist wie folgt banner.

Banner Benachrichtigungseinstellung

Bildschirmfoto 2015-10-19 beim 10.37.05 PM

Bildschirmfoto 2015-10-19 beim 10.41.13 PM

Wenn Sie die Benachrichtigungseinstellungen, um Warnungen dann legen Sie folgende Mitteilung erhalten

Bildschirmfoto 2015-10-19 beim 10.38.52 PM

Bildschirmfoto 2015-10-19 beim 10.40.04 PM

Bildschirmfoto 2015-10-19 beim 10.40.21 PM
Download von X-Code-Datei
Herausforderung : Nehmen Sie die Änderungen in der App nach Bekanntgabe Aktionen drücken.
Herunterladen Herausforderung Lösung

Gesamt 1 Stimmen
0

Sagen Sie uns, wie kann ich dieses Tutorial verbessern?

+ = Stellen Sie sicher, Mensch oder Spambot ?