Alarm_Clock_UserNotifications
仿ios系统闹钟
添加闹钟效果图
收到通知效果图
更新日志
2018.09.12 由于iOS系统限制了注册本地推送的数量,最大的注册量为64条,且一旦超出64条,所有的推送都将失效,故而在添加推送的时候做了一个判断,超过64条后,将不添加,以免影响已经添加的推送。
前言
最近项目中涉及到了本地通知的功能,索性就模仿系统闹钟写了个demo,对于iOS系统闹钟,应该都比较熟悉,该demo,基本实现了系统闹钟的全部功能。该demo本地通知使用的是iOS10 推出的UserNotifications, 关于UserNotifications的介绍和使用,网上已有诸多文章,在此就不多做赘述。
UNNotificationsManager
关于闹钟所使用到的UserNotifications库 做了一个简单的封装, 包含了注册通知,添加通知,以及 一些通知组件的 实现方法,同时提供了可供 外部使用的收到推送的通知
extern NSString * const UNDidReciveRemoteNotifationKey;//收到远程通知时调用
extern NSString * const UNDidReciveLocalNotifationKey; //收到本地通知时
extern NSString * const UNNotifationInfoIdentiferKey; //本地通知userinfo 里 Identifer的key值
一些其他方法,以demo为准
//注册本地通知
+ (void)registerLocalNotification;
#pragma mark -- AddNotification
/* 添加通知
* identifer 标识符
* body 主体
* title 标题
* subTitle 子标题
* weekDay 周几
* date 日期
* repeat 是否重复
* music 音乐
*/
+ (void)addNotificationWithBody:(NSString *)body
title:(NSString *)title
subTitle:(NSString *)subTitle
weekDay:(NSInteger)weekDay
date:(NSDate *)date
music:(NSString *)music
identifer:(NSString *)identifer
isRepeat:(BOOL)repeat
completionHanler:(void (^)(NSError *))handler;
#pragma mark -- NotificationMana