iOS开发 -- 通过app向手机自带的日历中添加事件提醒

在如今实际开发中,我们会有一种需求---通过自己的app往系统自带的日历中添加提醒事件.

一: 首先上最后效果图:


iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第1张图片
WechatIMG7.jpeg

下图是关于添加事件的详情

iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第2张图片
WechatIMG8.jpeg

这里可以设置提前多长时间提醒该事件,在日历事件详情中这里可以看到

Paste_Image.png

最后事件到提前时间内,会在手机的通知栏推送消息通知,见下图

iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第3张图片
WechatIMG9.jpeg

二: 下面具体开始具体怎么实现的吧!
首先上代码下载地址:https://github.com/Andrewliu20/Demo.git 下载可以先体验一下.

功能的事件主要在EventCalendar类实现,下图是类的详情:
EventCalendar.h


iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第4张图片
Paste_Image.png

/**

  • 将App事件添加到系统日历提醒事项,实现闹铃提醒的功能
  • @param title 事件标题 ---这里是标题
  • @param location 事件位置 -- 这里可以添加位置,也可以其他想显示的内容(系统日历中是地址)
  • @param startDate 开始时间 -- 事件的开始日期和系统日历设置事件开始事件对应
  • @param endDate 结束时间 -- 事件的结束日期和系统日历设置事件开始事件对应
  • @param allDay 是否全天 -- 和系统设置全天一致
  • @param alarmArray 闹钟集合 -- 提前提醒的时间集合(这里可以设置多个提醒事件点,时间点单位为秒,如果提前提醒需要设置为负,比如-3600 就是提前一个小时提醒)
    */
    下图是EventCalendar.m的具体实现
iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第5张图片
Paste_Image.png

ps:在ios10以后,对于使用系统自带的隐私数据,比如相机,日历等,需要添加权限通知,这里只用到日历,只需要在xcode中的info.plist中添加上下面这句话,不然统会crash.

NSCalendarsUsageDescription
App需要您的同意,才能访问日历
三: 实际使用,在你的项目中把EventCalendar导入要实现的地方即可.下图是demo中实现的实现.

iOS开发 -- 通过app向手机自带的日历中添加事件提醒_第6张图片
Paste_Image.png

ps:
这里是事件开始时间是[NSDate dateWithTimeInterval:3600 sinceDate:[NSDate date]] 3600 代表当前时间的的一个小时为开始事件,结束事件类似.
alarmArray 闹钟集合 我这里就添加一个,-3600 代表提前一个小时提示.

喜欢请留爪! thx!!

你可能感兴趣的:(iOS开发 -- 通过app向手机自带的日历中添加事件提醒)