首页 > 其他 > 详细

通知(消息)机制

时间:2014-02-22 10:21:49      阅读:319      评论:0      收藏:0      [点我收藏+]

通知(消息)机制


技术博客http://www.cnblogs.com/ChenYilong/ 
新浪微博http://weibo.com/luohanchenyilong 


bubuko.com,布布扣
 bubuko.com,布布扣
bubuko.com,布布扣
通知(消息)机制 
技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong

bubuko.com,布布扣 bubuko.com,布布扣

通知(消息
Notification)机制基本概念 
? iOS中提供了两种通知机制: - 本地通知
- 推送通知
? 本地通知推送通知可以让不在前端运行的应用程序告知用户应用程 序内部发生的信息。这些信息可以是一条消息,也可以是即将要发生 的事件,亦或者是远程服务器上有新的数据等
? 通知的展现方式:- 显示一个UIAlertView或者横幅 -更新应用程序图标上的数字 - 播放声音
bubuko.com,布布扣

本地通知
--示意图 

bubuko.com,布布扣

bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

本地通知 

? 本地通知是一个UILocalNotification的实例,包含以下三个重要属性: - 调度时间:要使用本地通知,必须指定通知触发的日期以及时间,
还可以设置通知的重复间隔,例如按周重复或者按月重复
- 通知类型:用于指定提示文字信息,操作按钮的标题,应用程序 图标上的数字以及要播放的声音
- 自定义数据:本地通知还可以包含一个自定义数据的字典 ? iOS允许最多允许的本地通知数量为:64 
bubuko.com,布布扣

调度本地通知的步骤 


bubuko.com,布布扣
1. 2. 3.
4.
实例化UILocalNotification对象 通过fireDate属性,设置操作系统触发通知的日期和时间
如果将timeZone属性设置被当前地区对应的NSTimeZone对象,系统会自动 根据所在时区调整通知触发时间
设置通知的属性:- alertBody:信息内容- alertAction:消息标题- applicationIconBadgeNumber:图标上的数字-soundName:要播放的声音-UILocalNotificationDefaultSoundName:使用默认系统声音
通过userInfo属性还可以将一个数据字典附加到本地通知 调度并提交本地通知
5. 6.
提示:通过userInfo可以在用户通过通知进入系统时定位到所需的位置

消息推送机制原理 

? 苹果提供了一堆服务器,每个ios设备和这些服务器保持了一个长连接, ios版本更新提示、手机时钟校准等操作都是通过这个连接实现 
? 消息推送服务简称为APNS(Apple Push Notification Service),是该长 连接中的一个服务,如果要向用户发消息,必须通过APNS进行中转 
? 消息推送不支持群发,只能一个一个发 
? 消息包一般由两部分组成:标示用户手机的id(32个字节)+消息体 
(<=256Bytes),消息体是json字符串,传输过程使用SSL加密 
? 标示用户手机的ID又被称为Device Token,每个手机都不一样,Device Token非常重要! 
bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
bubuko.com,布布扣
bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
bubuko.com,布布扣
bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong 
消息推送机制示意图 
bubuko.com,布布扣

bubuko.com,布布扣

Device Token
 
? 每台机器的Device Token都不一样,但不是硬件编码(UDID) 
? 如果重新安装操作系统,Device Token可能会发生变化 
? Device Token是在用户手机发起请求时由ASPN生成的 
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *)deviceToken! 
? 方法可以获取到用户设备的Device Token! 
? 注意:DeviceToken的生成机制可能随时变化,最好方法每次获取 到deviceToken后,与之前(如果有)的deviceToken进行比较, 如果发生变化,及时更新自己数据服务器上的记录 
bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

deviceToken
处理流程 
bubuko.com,布布扣

bubuko.com,布布扣

消息推送的实现步骤 

? 在苹果开发者中心注册并下载一份cer文件
? 新建并下载一个Provisioning Profile
? 编写代码
- (BOOL)application: didFinishLaunchingWithOptions:!
注册允许接收远程通知及通知类型!
!
- (void)application: didRegisterForRemoteNotificationsWithDeviceToken:!
记录deviceToken并提交至服务器! !
-(void)application:didReceiveRemoteNotification:fetchComple tionHandler:!
接收到远程通知处理方法! !
提示:发送通知消息的工作由后台服务器完成,客户端开发不需要考虑

bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

设置应用程序远程推送的许可证 

bubuko.com,布布扣

bubuko.com,布布扣

允许应用程序接收远程通知 

bubuko.com,布布扣

bubuko.com,布布扣

从证书颁发机构请求证书 

bubuko.com,布布扣

bubuko.com,布布扣

在开发中心申请通知推送服务验证字 

bubuko.com,布布扣

bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

选择验证字使用的
App ID 

bubuko.com,布布扣
bubuko.com,布布扣

上传
CSR文件 
bubuko.com,布布扣

bubuko.com,布布扣

下载生成的验证字文件 

bubuko.com,布布扣

bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

将验证字文件导入到钥匙串管理器 

bubuko.com,布布扣

bubuko.com,布布扣

新建开发许可证文件 

bubuko.com,布布扣
bubuko.com,布布扣

选择
App ID 
bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
Thanks!
 Q & A 
bubuko.com,布布扣
chenyilong. Powered by Postach.io

通知(消息)机制

原文:http://www.cnblogs.com/ChenYilong/p/3560137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!