iOS访问系统日历 添加提醒事件

IOS 往手机日历里增,删,查,该事件提醒 之前对这个块也不是很熟悉,然后在一个项目上使用过,所以这里就记下笔记,仅供参考。 准备工作 1.需要在工程中引入EventKit框架,#import <EventKit/EventKit.h> 2.引入了此框架后,我们可以用来操作系统日历和提醒事项,这两个app都是IOS系统自带的功能。 3.这里有个EKEventStore,相当于一个数据库身份。因为使用比较频繁,建议创建... 阅读详情

1 添加隐私请求提示

Privacy - Calendars Usage Description

2 代码
#import <EventKit/EventKit.h>

// 添加提醒事件
- (void)addEventWithTimeStr:(NSString *)timeStr title:(NSString *)title planId:(NSString *)planId
{
    
    EKEventStore *store = [[EKEventStore alloc] init];

    if ([store respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
        
        [store requestAccessToEntityType:(EKEntityTypeEvent) completion:^(BOOL granted, NSError * _Nullable error) {
           
            dispatch_async(dispatch_get_main_queue(), ^{

                
                if (error) {
                    NSLog(@"发生错误");
                } else if (!granted) {
                    NSLog(@"未获得使用日历权限");
                } else {
                    EKEvent *event = [EKEvent eventWithEventStore:store];
                    event.title = title;
//                    event.location = @"位置";
                    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
                    NSDate *date = [formatter dateFromString:timeStr];
                    // 提前一个小时开始
                    NSDate *startDate = [NSDate dateWithTimeInterval:-3600 sinceDate:date];
                    // 提前一分钟结束
                    NSDate *endDate = [NSDate dateWithTimeInterval:60 sinceDate:date];
                    event.startDate = startDate;
                    event.endDate = endDate;
                    event.allDay = NO;
                    // 添加闹钟结合(开始前多少秒)若为正则是开始后多少秒。
                    EKAlarm *elarm2 = [EKAlarm alarmWithRelativeOffset:-20];
                    [event addAlarm:elarm2];
                    EKAlarm *elarm = [EKAlarm alarmWithRelativeOffset:-10];
                    [event addAlarm:elarm];
                    [event setCalendar:[store defaultCalendarForNewEvents]];
                    
                    NSError *error = nil;
                    [store saveEvent:event span:EKSpanThisEvent error:&error];
                    if (!error) {
                        NSLog(@"添加时间成功");
                        //添加成功后需要保存日历关键字
                        NSString *iden = event.eventIdentifier;
                        // 保存在沙盒,避免重复添加等其他判断
                        [[NSUserDefaults standardUserDefaults] setObject:iden forKey:planId];
                        [[NSUserDefaults standardUserDefaults] synchronize];
                    }
                }
            });
        }];
    }
    
}

// 移除提醒事件
- (void)removeEventWithPlanID:(NSString *)planId
{
    
    
    EKEventStore *store = [[EKEventStore alloc] init];
    // 获取上面的这个ID呀。
    NSString *identifier = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:planId]];
    EKEvent *event = [store eventWithIdentifier:identifier];
    __block BOOL isRemoved = NO;
    dispatch_async(dispatch_get_main_queue(), ^{
        
        NSError *err = nil;
        
        isRemoved = [store removeEvent:event span:EKSpanThisEvent commit:YES error:&err];
        
        if (!err) {
            NSLog(@"删除日历成功");
            [[NSUserDefaults standardUserDefaults] removeObjectForKey:identifier];
            [[NSUserDefaults standardUserDefaults] synchronize];
        }
        
    });
    
    
}
在这里插入代码片
iOS应用中添加事件到系统日历的实战教程 EventKit框架是一个强大的工具,它允许开发者执行如下操作:访问用户的日历和提醒事项;查询、更新、删除和添加事件;监听事件变更通知。使用EventKit框架,开发者可以为用户提供与日历交互的丰富体验,这包括但不限于创建待办事项、安排会议或设置生日提醒。一旦获得权限,就可以开始创建和配置事件了。事件属性包括标题、时间范围和地点,这些是构建事件时最基本的要素。在这段代码中,我们创建了一个EKEvent实例,并设置了标题、开始时间、结束时间以及地点。 阅读详情

相关推荐

tewa-707e光猫超级密码获取方法

这款光猫很魔性,没有WIFI,没有USB接口,没有Telnet,试了很多方法去获取超级密码都不行。解密时可能会报错,可能是文件后面部分不晓得是咋拼接过来的,用AES解密时分组数据有问题。3、这个文件是用AES加密了的,直接打开是乱码,所以得用AES解密,key为16个字节的 x00。打开解出来的文件,然后搜索 telecomadmin,就可以发现超级密码了。参考资料里面的光猫不是同一款,但解密的方法基本相同的。

shaowl111的专栏 1万+

Xcode8plis文件配置

Xcode升级到X8之后,plist文件必须需要配置,否则程序会崩溃,上架AppStore的时候会出问题。配置如图 Privacy - Calendars Usage Description       日历权限 Privacy - Camera Usage Description          需要访问您的相机 Privacy - Contacts Usage De

Ares称雄 33万+

银河麒麟v10离线安装docker二进制包

因为工作需要在银河麒麟v10系统上离线部署k8s集群,k8s部署的前提是具有docker环境,因此离线安装docker成为必然。 1.下载docker包:Index of linux/static/stable/x86_64/ 选择自己合适的版本,我下载的是20.10.7 选择自己放置docker包的路径进行解压: cd /home/huawei/zq tar -zxvf docker-20.10.7.tgz 2. 给docker包解压出来的docker文件夹下的二进制文件赋..

q_hsolucky的博客 7683

iOS10访问通讯录、相册等隐私权限设置

这里仅以相册的为例: plist文件里面添加,Privacy - Photo Library Usage Description,Value值为描述,弹出的提示框会显示出来。 修改plist 升到iOS10之后,需要设置权限的有: 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权

useruser19900720的博客 3684

【Docker】Docker安装Hadoop分布式集群

hadoop目录安装在:/usr/local/hadoop-2.7.0/etc/hadoop。访问Hadoop102:9870,查看是否能够看到hdfs界面。访问hadoop103:8088,查看能够看到yarn界面。在yarn上可以看到执行情况。

weixin_46429290的博客 3459

【STM32学习】(29)STM32实现595驱动三个数码管(标准库和HAL库实现)

我选用的单片机型号为:STM32F103系列 74LS595是一个串转并行输出的芯片,它能为单片机节省很多的IO口,应用场景广泛。 现要求三个数码管动态显示,常规设计都是并行实现,需要8个IO数据口,然后还需要3个IO片选数码管接口,这样大大占用了IO口,导致连接的外设变少。因此我们引入74LS595芯片。电路设计如下: 只需要三个共阴极数码管与三个595芯片级联即可完成,通过RCLK,SCK,SER三个IO即可完成对数码管的动态控制并显示。电路焊接的实物图如下: 要求完成功能:实现数.

XiaoCaiDaYong的博客 8263

ios plist 常用申明

NSContactsUsageDescription -&gt; 通讯录NSMicrophoneUsageDescription -&gt; 麦克风NSPhotoLibraryUsageDescription -&gt; 相册NSCameraUsageDescription -&gt; 相机NSLocationAlwaysUsageDescription -&gt; 地理位置NSLocationW...

jimmychan的博客 897

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

ios隐私权限的使用及设置

iOS隐私权限类别如下: 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机? 相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库? 通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通

落花辞书的博客 2371

使用trae自动生成前后端分离的web应用程序

使用ai自动生成前后端分离的web应用程序

一介书生 2524

u-boot-2014.10移植第22天----添加nand flash命令支持(四)

解决问题:nand0: MTD Erase failure: -5 drivers/mtd/nand/nand_bbt.c文件中初始化bbt/* * Allocate memory (2bit per block) and clear the memory bad block * table. */ this->bbt = kzalloc(len, GFP_

fulinux的博客 3631

【文末有惊喜!】iOS日历攻略:提醒调休并过滤法定节假日

本文字数:4281字预计阅读时间:29分钟背景笔者五一之前补班的时候,闹钟没响,早上差点迟到了。笔者闹钟设置的是周一到周五,因为iPhone没有法定节假日和补休的设置。。。。笔者就想要...

SOHU_TECH的博客 2737

DRV8711驱动器的各寄存器的介绍

drv8711驱动器

PCLintelligence的博客 1634

ios 添加日历提醒事件

需要引入   #import &lt;EventKit/EventKit.h&gt; Privacy - Calendars Usage Description             App需要您的同意,才能访问日历 Privacy - Reminders Usage Description           App需要您的同意,才能访问提醒事项 // // EventCalen...

xiaobo0134的专栏 3959

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

iOS 添加事件到系统日历中

-(void)saveEventToCalendarTomorrow:(id)event{     //事件市场     EKEventStore *eventStore = [[EKEventStore alloc] init];          //6.0及以上通过下面方式写入事件     if ([eventStore respondsToSelec

liu_bin_home的博客 2076

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IOS之日历与提醒

IOS利用EventKit可以实现添加提醒和添加事件(日历)的功能 EKEventStore类 该类负责日历和提醒事件的管理,可以简单理解为数据库,可以对事件进行增删改查。 查询今天暂且不表,只说如何添加事件和提醒。  因为它就像数据库一样,频繁的开启,关闭会影响效率,所以如果你的程序需要频繁操作日历和提醒, 建议仅生成该对象一次,仅用一个对象进行操作。 @interface

hahahakonghee的专栏 4453

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OS开发-事件添加到系统日历提醒事项实现闹铃提醒的功能

iOS开发-事件添加到系统日历提醒事项实现闹铃提醒的功能 之前开发中遇到需要将App事件添加到系统日历提醒事项,实现闹铃提醒的功能。 ## 一、EventKit与EKEventStore EventKit不仅能获取已存在的日程和提醒,还能在自己的app中创建、编辑、删除用户的日程和提醒,还能添加提醒、监听变化等。 EKEvent是EKCalendarItem的子类,对应日历应用中的事件。

一名开发者 1690

ios 添加日历提醒事件_将日历提醒事件添加到网页

ios 添加日历提醒事件Publicizing real-world events on web pages is a great idea, but it assumes that readers will frequently revisit the site, or record the time and location of the event themselves. 在网页上公开真实事...

cungui5726的博客 655

android日历事件 简书,iOS EventKit 添加日历及提醒事项(重复提醒)

EventKit是在iOS和OS X下都可以使用的框架。今天主要展示的是如何给提醒事件添加重复提醒。简单来说EKEvent 添加的事件在日历项中展示,EKReminder 添加的事件在提醒事项中展示。#import 添加前都要获取“提醒事件”权限://生成事件数据库对象EKEventStore *eventDB = [[EKEventStore alloc] init];//申请事件类型权限[ev...

weixin_39745933的博客 712

日历软件使用教程:以 Outlook 日历、谷歌日历、苹果日历为例

本文以 Outlook、谷歌和苹果日历为例,详细地介绍了日历软件的各种基本功能和使用技巧,内容包括四个部分:日历的作用及其与提醒事项的区别、日历的功能、日历的可用性和通用性、日历的协作。

Xovee 1万+

如何发布日历提醒推送消息服务器,iOS开发 -- 通过app向手机自带的日历中添加事件提醒...

在如今实际开发中,我们会有一种需求---通过自己的app往系统自带的日历中添加提醒事件.一: 首先上最后效果图:WechatIMG7.jpeg下图是关于添加事件的详情WechatIMG8.jpeg这里可以设置提前多长时间提醒该事件,在日历事件详情中这里可以看到Paste_Image.png最后事件到提前时间内,会在手机的通知栏推送消息通知,见下图WechatIMG9.jpeg二: 下面具体开始具...

weixin_28788983的博客 1275

iOS日历攻略:提醒调休并过滤法定节假日

????????关注后回复“进群”,拉你进程序员交流群????????作者丨狐友技术团队来源丨搜狐技术产品(ID:sohu-tech)本文字数:4281字预计阅读时间:29分钟背景笔者...

iOS_开发 6464

不再错过重要日程:开源iOS日历应用的事件提醒与重复规则全攻略

你是否曾因忘记生日、错过会议或重复任务设置繁琐而烦恼?在快节奏的生活中,一个灵活可靠的日历应用能帮你管理时间、提升效率。本文将带你探索[open-source-ios-apps](https://gitcode.com/GitHub_Trending/op/open-source-ios-apps/blob/f41d5e216845c8ddb5ef1983477def9f4cc2d5b6/READ...

gitblog_00712的博客 1305

iOS日历中给一个事件添加多个提醒

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) iOS自带的日历应用中,我们最多只能给一个事件设置2个提醒,但是通过代码,我们可以给事件设置任意多个提醒.给事件设置提醒的代码可以看我写的这篇文章:iOS9中如何在日历App中创建一个任意时间之前开始的提醒(三)设置多个提醒的方法与此类似,我们只要创建多个提

享受开发,颠倒银河 4548

PermissionScope事件与提醒权限:日历和备忘录的访问控制终极指南

在现代iOS应用开发中,**事件与提醒权限管理**是保障用户隐私安全的重要环节。PermissionScope作为一款智能的iOS权限UI框架,为开发者提供了简单高效的解决方案,让日历和备忘录的访问控制变得轻松易用。📱 ## 为什么需要专门的权限管理框架? iOS系统对用户隐私保护有着严格的要求,任何访问**日历事件**或**备忘录提醒**的应用都必须获得用户的明确授权。Permission

gitblog_00419的博客 882

ios中将事件添加到系统日历

- (void)saveEvent:(id)sender {                    //事件市场     EKEventStore *eventStore = [[EKEventStore alloc] init];          //6.0及以上通过下面方式写入事件     if ([eventStore respondsToSelector:@selecto

lv710627152的博客 378
上一篇: iOS scrollToItemAtIndexPath 无效的解决方案
下一篇: iOS 修改系统的音量
Leonardo_Fibonacci
博客等级 码龄10年 110粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值