本地和推送通知使您的应用程序可以经过显示消息并接受用户的操做,播放独特的声音或更新应用程序图标上的徽章,使用户及时了解相关内容。服务扩展功能使您的应用程序可以在显示以前解密并扩充推送通知内容。了解什么是新功能,并得到有关在您的应用程序中实施用户通知的专家建议。api
之前只能展现一条文字,如今能够有 title 、subtitle 以及 body 了 Alt text 代码示例:session
//Local Notification UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; content.title = @"Introduction to Notifications"; content.subtitle = @"Session 707"; content.body = @"Woah! These new notifications look amazing! Don’t you agree?"; content.badge = @1; //Remote Notification { "aps" : { "alert" : { "title" : "Introduction to Notifications", "subtitle" : "Session 707", "body" : "Woah! These new notifications look amazing! Don’t you agree?" }, "badge" : 1 }, }
完全掌控整个推送周期: * Local Notification 经过更新 request * Remote Notification 经过新的字段 apns-collapse-idapp
经过以前的 addNotificationRequest: 方法,在 id 不变的状况下从新添加,就能够刷新原有的推送。ide
NSString *requestIdentifier = @"sampleRequest"; UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:requestIdentifier content:newContent trigger:newTrigger1]; [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) { }];
在 iOS 10 中,能够容许推送添加交互操做 action,这些 action 可使得 App 在前台或后台执行一些逻辑代码。而且在锁屏界面经过 3d-touch 触发。如:推出键盘进行快捷回复,该功能以往只在 iMessage 中可行。Notification Actions 在 iOS 8 引入,快捷回复在 iOS 9 引入,在 iOS 10 中,这些 API 被统一。动画
例子:系统信息appurl
用户能够经过Setting统一配置是否显示详情, 先开放apispa
能够配置identifier, 显示信息的类别.net
有时间限制地执行一段代码设计
先发送视频url, 本地下载后做为attachment后再展现, 有下载不成功的状况, 有一系列异常的回调3d
能够在手机「接收到推送以后、展现推送以前」对推送进行处理,更改、替换原有的内容。
使用它,原有发送推送的 payload 能够彻底不变,而在客户端对接收到的内容(只有一条字符串)进行加工,从而适配 iOS 10 的展现效果(标题+副标题+内容)。
iOS 10 新增的另外一项 Extension,用于彻底自定义推送展现的 UI 界面,响应 Actions 的同时刷新该 UI。简单的说就是你能够把须要推送的内容(好比一条完整的新闻快讯,包括多条文字+图片的组合)所有放到一条推送里,用户点击了一个 Action(如赞、踩、关注、甚至评论等),在推送里马上刷新 UI(如展现加星动画、评论内容等)。
特色
Action :可定制, 例如点赞, 评论
Custom Input View:整个底部的空间能够定制一个View
感受 Notification Content 的功能极其强大,有了它以后连 App 都不须要再启动了的样子(只要能合理的设计展现内容和操做),省去了用户每次为了一项简单操做都要进行「启动 App - 操做 - 切换到多任务界面 - 退出 App」这样的繁琐过程。本来用户看到推送可能不太有意愿去查看详细内容,如今他只须要很简单的操做就能快速的查看,大幅提高用户点击通知的意愿 究其如此便捷的缘由,Notification Service Extension 和 Notification Content 都是独立于项目的 target,收到推送后,系统会单独运行这两个 target,彻底不会在此时去启动 App 并执行 App 中大量的代码,童鞋们在调试的时候也能够注意这一点。