免费开源的iOS开发学习平台

本地消息推送(基于iOS10 UserNotifications框架):1-UNNotificationRequest类

在iOS10中,苹果对消息推送功能进行了比较大幅度的整合,发布了UserNotifications框架,把本地推送以及远程推送进行了整合处理,同时进行了增强改进(引入Notification Service Extension 和 Notification Content Extension)。

在iOS10之前,本地消息推送都是使用UILocalNotification类进行管理的,在iOS10中,引入了UserNotifications框架,从而对本地消息推送抽象出来了一些新的类,总体来说,此次升级对于推送消息的管理更加完善,建议深入了解并对现有应用进行升级。

UNNotificationRequest类

每一类本地推送消息都是一个UNNotificationRequest类(推送请求类)的对象,该类中包含如下核心的属性和方法。

  • UNNotificationRequest类的初始化方法,该方法需要传递3个参数,分别为该推送消息的标识、内容以及触发条件;
+ (instancetype)requestWithIdentifier:(NSString *)identifier content:(UNNotificationContent *)content trigger:(nullable UNNotificationTrigger *)trigger;
  • identifier: 每个推送请求类的标识,用于区分每一类的本地推送请求。通过标识,我们可以区分多个推送请求,我们可以为每一类推送请求设置不同的提醒内容以及提醒周期。注意:该属性是readonly的,只能在初始化时指定。
@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSString *identifier;
  • content:每个推送请求的内容,这个属性是一个UNNotificationContent类的对象。每个推送请求中所携带的信息,都在content属性中。注意:该属性是readonly的,只能在初始化时指定。有关UNNotificationContent的详细介绍,参见后续章节。
@property (NS_NONATOMIC_IOSONLY, readonly, copy) UNNotificationContent *content;
  • trigger:触发器。从字面意思上理解,trigger决定了消息推送的时间。该属性是一个UNNotificationTrigger类的对象。当一个推送消息的trigger为空时,意味着该消息会被立即推送。有关UNNotificationTrigger的详细介绍,参见后续章节。
@property (NS_NONATOMIC_IOSONLY, readonly, copy, nullable) UNNotificationTrigger *trigger;