IOS8 通知中心(Notification Center)新特性
苹果keynote展示push通知的一些优化,特别的允许用户能够直接在push上进行交互,这么牛逼的功能,当然第一时间研究。
下面看看具体的产品细节和技术实现:
产品细节:
以下都是使用本地push测试的:(离线push效果一样)
1、状态栏、锁屏状态下和通知中心中的效果如下:(这里最多只能设置两个按键)
2、通知展示设置为Alert模式时,点击Options,会弹出操作选项如下:( 除去launch和close,这里最多能够设置四个选项)
Apple只提供了两种按钮点击后的响应模式:
1、 点击后应用在后台被唤醒 像赞这种轻操作则可以使用这种模式
2、 点击后应用被唤醒到前台 评论回复这些需要用户进一步操作的,适合这种情况。
在WWDC keynote我们看到的短信push演示视频中,收到短信push后能直接播放语音,且能够在当前屏幕直接录音回复的高大上操作,Apple还是木有开放给普通应用使用。(目前在API文档中,只提供了上述的两种操作模式)
技术实现细节:
一、注册User Notification
1、注册API改变
原来注册离线push的API
- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types
已经废弃。
转为使用:
- (void)registerForRemoteNotificationsNS_AVAILABLE_IOS(8_0);
2、增加注册UserNotification (用户可操作的push)的API,用于注册PUSH中展示的按钮和按钮响应事件。
3、增加注册UserNotification成功的回调。原来注册离线成功和失败的回调没有改变
二、设置push中的操作按钮信息
1、注册单个按钮的title、identifier和按钮模式等信息
按钮的activationMode有以下两种模式:
UIUserNotificationActivationModeForeground:点击按钮后,会呼起APP
UIUserNotificationActivationModeBackground:点击按钮后,APP在后台运行
2、多个按钮组合成一个Category。用于在一条push中展示多个操作按钮。Category也有identifier,可以注册多个Category,不同的push类型可以使用不同的Category。实现不同push类型中展示不同操作按钮。
每种Category的按钮有两种展示情况:
一个是默认模式(对于Alert模式时,弹出的操作选项,最多四个按钮)
一个是最少展示模式(对应状态栏、锁屏状态下和通知中心中展示的按钮,最多两个按钮)。
3、注册UserNotification时,设置NotificationType和Categories
NotificationType 包括应用图标上的数字、push声音、和push弹框三种
4、后台触发离线push字段需增加字段和离线包大小修改
离线push数据包带上特定Category字段(字段内容需要前后台一起定义,必须要保持一致),手机端收到时,就能展示上述代码对应Category设置的按钮,和响应按钮事件。
重大修改: 离线push数据包之前能带的数据最多为256字节,现在APPLE将该数值放大到2KB。 这个应该是只针对IOS8的。
5、按钮点击事件回调
用户点击push上的按钮后,APP就能收到如下回调事件,在该回调里响应按钮事件。原来收到push的点击回调事件没有改变。
三、新增Location Notification
当用户进入或者离开某个在应用中注册的区域时,应用能收到通知。
IOS8 通知中心(Notification Center)新特性的更多相关文章
- 【Azure 环境】Azure通知中心(Notification Hub)使用百度推送平台解说
问题描述 在通知中心的页面中显示支持BaiDu,介绍一下支持的是百度(Baidu)的什么吗?Azure的这个功能在国内使用的时候是否可以保证国内安卓手机的信息送达率? 问题解答 通知中心的页面中的Ba ...
- iOS 设计模式-NSNotificationCenter 通知中心
通知介绍 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述 ...
- 了解与建设有中国特色的Android M&N(Android6.0和7.0新特性分析)
http://geek.csdn.NET/news/detail/110434 Android N已经发布有段时间,甚至马上都要发布android 7.1,相信不少玩机爱好者已经刷入最新的Androi ...
- NSNotificationCenter 通知中心传值
1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) N ...
- 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性
[源码下载] 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性 作者:webabcd 介绍重新想象 Windows 8.1 Store Ap ...
- ios8新特性widget开发-b
os8发布已经有一段时间了,伴随着ios8同时也出现了许多新的特性,ios系统将会越来越开放,这是好事.其中一个新特性就是在下拉通知栏里加入了个性的widget,开发者可以自己定义widget的样式内 ...
- iOS8新特性(1)——UIAlertController
一.iOS8介绍 iOS8 新特性,主要是UI上进行了统一 1.UIAlertController 2.UIPresentaionController:管理所有通过modal出来的控制器(看笔记) 3 ...
- 【Html5】Html5新特性Notification实现桌面消息推送(2016-05-25)
序:最近工作使用WorkTile,发现使用Chrome浏览器的时候如果有任务下发给我则会在桌面右下角提示(当前浏览器为最小化模式).感觉这个东西蛮有意思的,感觉可以给用户更好的体验,于是乎就查询了一下 ...
- iOS8 针对开发者所拥有的新特性汇总如下
iOS8 针对开发者所拥有的新特性汇总如下 1.支持第三方键盘 2.自带网页翻译功能(即在线翻译) 3.指纹识别功能开放:第三方软件可以调用 4.Safari浏览器可直接添加新的插件. 5.可以把一个 ...
随机推荐
- sublime text3 cssrem 快速px转rem插件
今天试验了下cssrem 在移动端如果需要px->rem非常方便 比较之前我自己用gulp提供的函数unit(70/@base,rem);转方便很多 1.git clone https://g ...
- Linux 设备驱动的固件加载【转】
转自:http://blog.csdn.net/zqixiao_09/article/details/51106663 版权声明:本文为博主原创文章,未经博主允许不得转载. 作为一个驱动作者, 你可能 ...
- inline关键词的使用(转载)
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...
- Hibernate游记——装备篇《一》(基础配置详解)
Hibernate配置文件可以有两种格式,一种是 hibernate.properties ,另一种是 hibernate.cfg.xml 后者稍微方便一些,当增加hbm映射文件的时候,可以直接在 h ...
- luogu P1040 加分二叉树
题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,-,n),其中数字1,2,3,-,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都 ...
- ARM 浮点运算
转载: http://www.embedu.org/Column/Column821.htm http://blog.sina.com.cn/s/blog_602f87700100r5xe.html ...
- 电话号码 【trie树】
电话号码 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描写叙述 给你一些电话号码,请推断它们是否是一致的,即是否有某个电话是还有一个电话的前缀. 比方: Emerg ...
- Win7如何自定义鼠标右键菜单 添加新建PowerPoint文档
鼠标右键添加新建PowerPoint文档.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.ppt] "Content ...
- python(6)- 常用快捷键及基础命令
- USB通讯协议
首先要了解USB枚举过程(自己百度) https://blog.csdn.net/MyArrow/article/details/8270029 USB通讯协议 0. 基本概念 一个[传输](控制.批 ...