Zeitplan & umplanen lokale Benachrichtigung

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

Lokale Benachrichtigungen sind sehr wichtiger Teil der app. Seiner beabsichtigten Verwendung ist nur für Erinnerungen vom Benutzer eingestellt. Aber viele apps gesetzt lokale Benachrichtigungs programatically. Sie nutzen lokale Benachrichtigung an Interaktion mit der App selbst zu erhöhen. Es gibt über Millionen Apps im App Store & neue Apps kommen jeden Tag. So können die Leute die App aber in wenigen Tagen vollständig vergessen Sie es.

Wenn Sie lokale Benachrichtigung ordnungsgemäß verwenden Sie können einen Eingriff mit Ihrer Anwendung zu erhöhen. Wenn Sie den Benutzer mit übermäßiger Bekanntgabe nerven dann Benutzer Benachrichtigung deaktivieren oder Ihre App noch schlimmer löschen. Heute werde ich Ihnen zeigen, wie lokale Benachrichtigung setzen.

  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 planen lokale Benachrichtigung & 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.

datepicker Schaltfläche Textfeld hinzufügen

4. Verbinden Textfeld als Auslass-Controller schnellen Datei bewerten

Textfeld zu schnellen Datei

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

Taste, um schnelle Datei

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

Datumsauswahl zu schnellen Datei

7. Zum app-Delegaten schnelle Datei und fügen Sie folgenden Code in hast Finish Start mit der Option, lokale Benachrichtigung aktivieren

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 7
let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge], categories: nil)

application.registerUserNotificationSettings(notificationSettings)

return true

}

Hier bin ich mit nur Warnmeldungen & Abzeichen Benachrichtigung. Je nach Dringlichkeit für die Benachrichtigung & Häufigkeit der Mitteilung können Sie Akustische Benachrichtigung auch. Wenn Sie häufig akustische Benachrichtigung von niedriger Priorität dann Benutzer Ihre App deinstallieren. So verwenden akustische Benachrichtigung sparsam.

8. Der obige Code wird der Benutzer um Erlaubnis fragen, um lokale Benachrichtigung auf ersten Lauf senden. Wenn der Benutzer die Erlaubnis verweigert, dann werden lokale Benachrichtigung keine Benachrichtigung erhalten. In diesem Fall wollen Sie auch die Benutzeroberfläche für das Speichern von lokalen Benachrichtigung verwendet verstecken. Weil es keinen Zweck dient. Öffnen Sie View-Controller schnellen Datei & erstellen folgende Methode.

// 8
func updateUI() {
    let currentSettings = UIApplication.sharedApplication().currentUserNotificationSettings()

    if currentSettings?.types != nil {

        if currentSettings!.types == [UIUserNotificationType.Badge, UIUserNotificationType.Alert] {

            textField.hidden = false

            button.hidden = false

            datePicker.hidden = false

        }
        else if currentSettings!.types == UIUserNotificationType.Badge {

            textField.hidden = true

        }
        else if currentSettings!.types == UIUserNotificationType.None {

            textField.hidden = true

            button.hidden = true

            datePicker.hidden = true

        }

    }

}

Im ersten Fall, überprüfen wir, wenn beide Abzeichen & Warnmeldung aktiv ist zeigt dann alle UI. Wenn Benutzer Warnmeldungen deaktiviert dann verstecken wir das Textfeld ein. Und wenn Benutzer die Erlaubnis oder geschlossenen Benachrichtigung verweigert dann verstecken Sie die gesamte UI.

9. Angesichts habe Last von View-Controller-swift-Datei hinzufügen neu geschaffenen Verfahren wie folgt

override func viewDidLoad() {
super.viewDidLoad()
// 9
updateUI()

// Do any additional setup after loading the view, typically from a nib.

}

10. Gehen Sie auf das app-Delegaten schnelle Datei und fügen Sie folgende Methode

// 10
 func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
let viewController = self.window!.rootViewController as! ViewController

viewController.updateUI()

}

Dies tat registrieren Benutzerbenachrichtigungseinstellungen Methode führt nach der Benutzer festgelegt hat Benachrichtigungs Erlaubnis. Ich bin gerade dabei, Steuerung anzuzeigen & Aktualisieren des UI.

11. Bevor wir lokale Benachrichtigung speichern können testen, ob alles so weit arbeiten. Führen Sie die App im iPhone 5s

Bildschirmfoto 2015-10-18 beim 9.53.33 PM

Wie Sie aus dem Bild oben sehen können, dass an seinem Ausgangszustand keine Meldung aktiv ist. Daher hinter der Erlaubnis Benachrichtigung werden Sie keine UI sichtbar nicht sehen. Und wenn Sie auf OK, dann sagen UI werden wie folgt sichtbar

Bildschirmfoto 2015-10-18 beim 9.54.03 PM

Gehen Sie zu Einstellungen->planen lokale Benachrichtigung und deaktivieren Warnmeldung wie folgt

Bildschirmfoto 2015-10-18 beim 10.09.24 PM

Jetzt laufen app wieder in iPhone 5s und Sie werden sehen, dass Textfeld ist jetzt nicht sichtbar

Bildschirmfoto 2015-10-18 beim 10.12.17 PM

Jetzt deaktivieren Sie alle Meldungen wie folgt

Bildschirmfoto 2015-10-18 beim 10.12.53 PM

Wenn Sie die App im iPhone 5s laufen Sie keine UI nicht sehen, weil ihr alle versteckt.

Bildschirmfoto 2015-10-18 beim 10.13.25 PM

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

Zeitplan-Taste, um rasche Datei

13. Fügen Sie folgenden Code in Button-Aktion

@IBAction func savePressed(sender: UIButton) {
// 1
let notification = UILocalNotification()
// 2
notification.fireDate = datePicker.date
// 3
if textField.text == “” {

    notification.alertBody = "New blog is posted at blog.apoorvmote.com"

}
else {

    notification.alertBody = textField.text

}
// 4
notification.timeZone = NSTimeZone.defaultTimeZone()
// 5
notification.repeatInterval = NSCalendarUnit.Minute
// 6
notification.applicationIconBadgeNumber = 1
// 7
UIApplication.sharedApplication().scheduleLocalNotification(notification)

} 
  1. Erstellen Sie lokale Benachrichtigung
  2. Brand Datum für die Benachrichtigung von der Datumsauswahl-Wert
  3. Wenn das Textfeld leer ist, dann setzen Standardtext für Alert-Text. Und wenn das Textfeld nicht leer ist dann diesen Text.
  4. Set der Zeitzone für die Benachrichtigung als Standardzeitzone für App. Das Standard-Zeitzone kann für jede app. Wenn Sie die Standardzeitzone für die App nicht setzen, dann Systemzeitzone dauert es.
  5. Dies ist optional. Aber, wenn Sie lokale Benachrichtigung bei bestimmten Intervall wiederholen wollen, dann können Sie diese hier eingestellt.
  6. Dies stellt Ausweisnummer. Er hat vor, berechnet werden. Sie können nicht die Nummer auf dem fly ändern. Sie können berechnen entweder Zahl der unerledigten Aufgaben oder Zahl der Meldungen vor,.
  7. Speichern Sie diese lokale Benachrichtigung

14. Wenn Sie die App mit den aktuellen Einstellungen, dann können diese Benachrichtigung nicht genau zum richtigen Zeitpunkt ausgelöst finden würde testen. Zum Beispiel, wenn Sie es eingestellt 2:05 PM dann kann es zu Feuer 2:05:45 PM. Hier werden wir um den Wert des zweiten auf Null gesetzt, damit es an genauen Zeitpunkt feuert. Erstellen Sie folgende Methode

// 14
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

}

15. Jetzt aktualisieren Benachrichtigungsbranddatum neu geschaffenen Verfahren wie folgt

@IBAction func savePressed(sender: UIButton) {
// 1
let notification = UILocalNotification()
// 15
notification.fireDate = fixedNotificationDate(datePicker.date)

16. Wenn Sie auf Benachrichtigung und offene App oder einfach nur offene app klicken, wenn Sie Badge-Nummer zu sehen, dann müssen Sie Ausweisnummer auf Null zurücksetzen möchten. Öffnen Sie app-Delegaten und fügen Sie folgenden Code in hast Finish startet mit Optionen Methode

application.registerUserNotificationSettings(notificationSettings)
// 16
application.applicationIconBadgeNumber = 0

return true

}

17. Wenn Sie lokale Benachrichtigung zu erhalten, während der Verwendung der App dann müssen Sie Badge-Nummer wieder auf Null setzen wollen. Fügen Sie folgende Methode in app-Delegaten

// 17
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
application.applicationIconBadgeNumber = 0
}

18. Führen Sie nun die App im iPhone 5s und sehen Sie, wenn Sie irgendeine lokale Benachrichtigung erhalten.

Bildschirmfoto 2015-10-19 beim 12.19.01 AM
Download von X-Code-Datei
Herausforderung 1: Abbrechen lokale Benachrichtigungs in bestimmten Zeit.

Herausforderung 2: Drucken Sie alle lokalen Meldung und brechen Sie alle lokalen Melde

Bildschirmfoto 2015-10-19 beim 12.20.37 AM
Herunterladen Herausforderung Lösung

Gesamt 4 Stimmen
0

Sagen Sie uns, wie kann ich dieses Tutorial verbessern?

+ = Stellen Sie sicher, Mensch oder Spambot ?