用户点击了一个 Action(如赞、踩、关注、甚至评论等)

WWDC 2017 Session笔记 - Session 708 推送消息新功能和最佳实践(Best Practices and What’s New in User Notifications)

 

 

本地和推送通知使您的应用程序可以经过显示消息并接受用户的操做,播放独特的声音或更新应用程序图标上的徽章,使用户及时了解相关内容。服务扩展功能使您的应用程序可以在显示以前解密并扩充推送通知内容。了解什么是新功能,并得到有关在您的应用程序中实施用户通知的专家建议。api

Best Practices and What’s New in User Notifications

Content

之前只能展现一条文字,如今能够有 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
        },
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Notification Management

完全掌控整个推送周期: * 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) { }];
  • 1
  • 2
  • 3

Notification Actions

在 iOS 10 中,能够容许推送添加交互操做 action,这些 action 可使得 App 在前台或后台执行一些逻辑代码。而且在锁屏界面经过 3d-touch 触发。如:推出键盘进行快捷回复,该功能以往只在 iMessage 中可行。Notification Actions 在 iOS 8 引入,快捷回复在 iOS 9 引入,在 iOS 10 中,这些 API 被统一。动画

Hidden Notificaition Content

例子:系统信息appurl

用户能够经过Setting统一配置是否显示详情, 先开放apispa

能够配置identifier, 显示信息的类别.net

Service Extendsion

有时间限制地执行一段代码设计

先发送视频url, 本地下载后做为attachment后再展现, 有下载不成功的状况, 有一系列异常的回调3d

能够在手机「接收到推送以后、展现推送以前」对推送进行处理,更改、替换原有的内容。

使用它,原有发送推送的 payload 能够彻底不变,而在客户端对接收到的内容(只有一条字符串)进行加工,从而适配 iOS 10 的展现效果(标题+副标题+内容)。

Different from silent notifications

Notification Content

iOS 10 新增的另外一项 Extension,用于彻底自定义推送展现的 UI 界面,响应 Actions 的同时刷新该 UI。简单的说就是你能够把须要推送的内容(好比一条完整的新闻快讯,包括多条文字+图片的组合)所有放到一条推送里,用户点击了一个 Action(如赞、踩、关注、甚至评论等),在推送里马上刷新 UI(如展现加星动画、评论内容等)。

特色

  • 须要添加 Notification content extension
  • 彻底自定义 UI
  • 推送 UI 不能响应触摸、点击、滑动等任何手势
  • 能够响应 notification actions ####NotificationViewController.h/m
  • 继承自 UIViewController,并实现了 UNNotificationContentExtension 协议。
  • 能够在 viewDidLoad 里定制你想要的 UI
  • 在 didReceiveNotification 方法里接收推送内容,而后各类处理逻辑、传值、展现 UI 等等。当点击了 actions,也会走到这里,而且包含一个 action 的字段,判断点击了哪一个 action 进而相应的更新你的 UI。 ###Content Extension 有一个独立的ViewController, 能够本身定制Notification使用3D Touch展开后的UI和内容 ###User Input Customization Alt text Media buttons :play pause

Action :可定制, 例如点赞, 评论

Custom Input View:整个底部的空间能够定制一个View

小结

感受 Notification Content 的功能极其强大,有了它以后连 App 都不须要再启动了的样子(只要能合理的设计展现内容和操做),省去了用户每次为了一项简单操做都要进行「启动 App - 操做 - 切换到多任务界面 - 退出 App」这样的繁琐过程。本来用户看到推送可能不太有意愿去查看详细内容,如今他只须要很简单的操做就能快速的查看,大幅提高用户点击通知的意愿 究其如此便捷的缘由,Notification Service Extension 和 Notification Content 都是独立于项目的 target,收到推送后,系统会单独运行这两个 target,彻底不会在此时去启动 App 并执行 App 中大量的代码,童鞋们在调试的时候也能够注意这一点。

相关文章
相关标签/搜索