Reminder aus der App setzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Reminder aus der App setzen

    Ich muss aus meiner App heraus Einträge in der App "Erinnerungen" erstellen. Hier ein Basis-Code, mit dem das funktioniert. Natürlich ausbaufähig.

    1. Die info.plist anpassen

    Quellcode

    1. <key>NSRemindersFullAccessUsageDescription</key>
    2. <string>JustCare benötigt Zugriff auf Erinnerungen</string>

    2. Eine Klasse erzeugen oder eine vorhandene ergänzen. Ich habe eine Klasse für alles, was mit Kalendern zu tun hat. Der Reminder ist auch ein Kalender und die EKReminder ist von der EKCalendarItem abgeleitet.

    Quellcode

    1. class CalendarClass {
    2. let eventStore : EKEventStore = EKEventStore()
    3. func createReminder(title:String, startDate:Date, endDate:Date? = nil, note:String? = "") {
    4. // Hier prüfen wir, ob wir Zugriff auf die Erinnerungen haben
    5. eventStore.requestFullAccessToReminders { (granted, error) in
    6. // wenn ja, dann weiter
    7. if granted && error == nil {
    8. // erst einmal das Startdatum in die dateComponents zerlegen
    9. let calendar = Calendar.current
    10. let sdComp = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: startDate)
    11. // den Reminder erstellen
    12. let reminder:EKReminder = EKReminder(eventStore: self.eventStore)
    13. reminder.title = title
    14. reminder.dueDateComponents = DateComponents(
    15. year: sdComp.year,
    16. month: (sdComp.month ?? 1),
    17. day: sdComp.day
    18. )
    19. reminder.notes = note
    20. // Hier holen wir uns den Standardkalender (s. Einstellungen von Erinnerungen)
    21. reminder.calendar = self.eventStore.defaultCalendarForNewReminders()
    22. // Hier definiere ich die vierteljährliche Wiederholung der Erinnerung
    23. reminder.recurrenceRules = [EKRecurrenceRule(recurrenceWith: .monthly, interval: 3, end: nil)]
    24. // jetzt den Eintrag speichern
    25. do {
    26. try self.eventStore.save(reminder, commit: true)
    27. } catch let error as NSError {
    28. print("failed to save event with error : \(error)")
    29. }
    30. }
    31. }
    32. }
    33. }
    Alles anzeigen
    Wenn sich keine Einträge erstellen lassen, das Sandboxing prüfen.
    Hinweis: die Prüfung nach den Zugriffsberechtigungen ist ab macOS 14.0 (Zeile 5)

    Wie gesagt: das ist ein Basis-Code und natürlich ausbaufähig. Mir reicht es aber, dass nur schnell die eine Erinnerung erstellt wird.
    Genaueres dann hier:
    developer.apple.com/documentat…ting_events_and_reminders

    Viel Spaß mit dem Schnipsel. Wer hierzu interessante Erweiterungen hat, würde es mich freuen, hier eure Vorschläge und Ideen zu lesen.
    Bei Fragen hierzu, bitte in den anderen Foren. :)