本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/30029441
 

 

苹果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)新特性的更多相关文章

  1. 【Azure 环境】Azure通知中心(Notification Hub)使用百度推送平台解说

    问题描述 在通知中心的页面中显示支持BaiDu,介绍一下支持的是百度(Baidu)的什么吗?Azure的这个功能在国内使用的时候是否可以保证国内安卓手机的信息送达率? 问题解答 通知中心的页面中的Ba ...

  2. iOS 设计模式-NSNotificationCenter 通知中心

    通知介绍 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述 ...

  3. 了解与建设有中国特色的Android M&N(Android6.0和7.0新特性分析)

    http://geek.csdn.NET/news/detail/110434 Android N已经发布有段时间,甚至马上都要发布android 7.1,相信不少玩机爱好者已经刷入最新的Androi ...

  4. NSNotificationCenter 通知中心传值

    1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) N ...

  5. 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性

    [源码下载] 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性 作者:webabcd 介绍重新想象 Windows 8.1 Store Ap ...

  6. ios8新特性widget开发-b

    os8发布已经有一段时间了,伴随着ios8同时也出现了许多新的特性,ios系统将会越来越开放,这是好事.其中一个新特性就是在下拉通知栏里加入了个性的widget,开发者可以自己定义widget的样式内 ...

  7. iOS8新特性(1)——UIAlertController

    一.iOS8介绍 iOS8 新特性,主要是UI上进行了统一 1.UIAlertController 2.UIPresentaionController:管理所有通过modal出来的控制器(看笔记) 3 ...

  8. 【Html5】Html5新特性Notification实现桌面消息推送(2016-05-25)

    序:最近工作使用WorkTile,发现使用Chrome浏览器的时候如果有任务下发给我则会在桌面右下角提示(当前浏览器为最小化模式).感觉这个东西蛮有意思的,感觉可以给用户更好的体验,于是乎就查询了一下 ...

  9. iOS8 针对开发者所拥有的新特性汇总如下

    iOS8 针对开发者所拥有的新特性汇总如下 1.支持第三方键盘 2.自带网页翻译功能(即在线翻译) 3.指纹识别功能开放:第三方软件可以调用 4.Safari浏览器可直接添加新的插件. 5.可以把一个 ...

随机推荐

  1. 喵星球上的点名(bzoj 2754)

    Description a180285幸运地被选做了地球到喵星球的留学生.他发现喵星人在上课前的点名现象非常有趣.   假设课堂上有N个喵星人,每个喵星人的名字由姓和名构成.喵星球上的老师会选择M个串 ...

  2. 【CF675C】Money Transfers(离散化,贪心)

    http://www.cnblogs.com/chengsheng/p/5535316.html 题目大意:给你n个银行中的存款(负值表示借贷),是成环的,1跟n相接,这n个数的和为0.可以从i向i的 ...

  3. ASP.NET MVC Identity 使用自己的SQL Server数据库

    之前在网上看到的一篇后来找不到了,现在自己记录一下. 1.在web.config中添加一个数据库连接. <add name="dataContext" connectionS ...

  4. 一次完整的http请求过程以及网络I/O模型select、epoll

    a.一次完整的http请求过程 1.域名解析,得到域名对应的IP; 2.三次握手,客户端与服务器通过socket建立TCP/IP连接; 3.浏览器向服务器发送http请求,如:GET/index.ht ...

  5. CDOJ_24 八球胜负

    8球是一种台球竞赛的规则.台面上有7个红球.7个黄球以及一个黑球,当然还有一个白球.对于本题,我们使用如下的简化规则:红.黄两名选手轮 流用白球击打各自颜色的球,如果将该颜色的7个球全部打进,则这名选 ...

  6. 某考试 T3 bitboard

                    bitboardDiscription    天才发明家小K 制造了一块比特板.板子上有2^n个比特元,编号为0 ∼ 2^n−1.每个比特元

  7. Hdoj 3506 Monkey Party

    Discription Far away from our world, there is a banana forest. And many lovely monkeys live there. O ...

  8. Java出现错误“Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )”的问题分析

    若出现:Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )这样的问题,一般是转义字符的问题,下 ...

  9. Fresco的使用<一>

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 引入Fresco dependencies { // 添加依赖 compile 'com.facebook.fresco:fre ...

  10. pycharm的todo和fixme标记,标志为今后再做和bug点

    使用方法,及查看方法: https://blog.csdn.net/xiemanR/article/details/73368440