Ajouter une entrée dans l’agenda IOS en Swift
Dans « Mes Lentilles » j’offre la possibilité de rajouter une entrée dans le calendrier de l’IPhone. Je vais vous expliquer comment j’ai fait.
En premier on doit rajouter la librairie EventKit :
1 |
import EventKit |
Voici la fonction pour ajouter une entrée dans le calendrier :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
func addItemCalendar (dateOfDay : Date, allDay : Bool,time: Double, alarm : Int, title : String, note : String) { let startDate = dateOfDay let stopDate = startDate.addingTimeInterval(time * 60.0) let store = EKEventStore() store.requestAccess(to: .event) {(granted, error) in if !granted { return } let event = EKEvent(eventStore: store) event.isAllDay = allDay event.title = title event.notes = note event.startDate = startDate event.endDate = stopDate event.addAlarm(EKAlarm.init(relativeOffset: TimeInterval(-(alarm * 60)))) event.calendar = store.defaultCalendarForNewEvents do { try store.save(event, span: .thisEvent, commit: true) } catch {} } } |
Les paramètres de la fonction sont :
- dateOfDay : La date et l’heure du début de l’entrée, variable de type date.
- allDay : Permet d’indique si l’entrée dure toute la journée, variable bool.
- time : Durée en minutes de l’entrée, variable de type Double.
- alarm : Nombre de minutes avant le début de l’entrée pour déclencher une alerte, variable de type entier.
- title : Titre de l’entrée, variable de type chaine de caractères.
- note : Descriptif de l’entrée, variable de type chaine de caractères.
Exemple d’utilisation :
1 2 3 4 5 |
let format = DateFormatter() format.dateFormat = "yyyy-MM-dd HH:mm" let myDate = format.date(from: "2018-01-23 10:00") addItemCalendar(dateOfDay: myDate!, allDay: false,time: 180.0, alarm: 5, title: "Ajout Calendrier", note: "Exemple d'ajout dans le Calendrier") |
Cet exemple permet d’ajouter une entrée le 23 Janvier 2018 à 10 heures d’une durée de 3 heures avec une alarme 5 min avant le début.
Mais pour que cela fonctionne il faut rajouter des informations dans le fichier “Info.plist” :
1 2 3 |
<key>NSCalendarsUsageDescription</key> <string>Calendrier</string> <key>UISupportedInterfaceOrientations</key> |
On doit faire cela pour que notre application demande à l’utilisateur le droit d’accéder au calendrier.
La ligne : <string>Calendrier</string>, permet d’indiquer à l’utilisateur pourquoi l’application veut accéder au calendrier.
Pour voir comment éditer ce fichier, vous pouvez lire mon article : https://www.myblog-it.fr/2017/03/05/raccourcis-3dtouch-dans-votre-application/
Bonne programmation.