通知(消息)机制

通知(消息)机制


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



 

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

 

通知(消息
Notification)机制基本概念 

• iOS中提供了两种通知机制: - 本地通知
- 推送通知
 本地通知推送通知可以让不在前端运行的应用程序告知用户应用程 序内部发生的信息。这些信息可以是一条消息,也可以是即将要发生 的事件,亦或者是远程服务器上有新的数据等

• 通知的展现方式:- 显示一个UIAlertView或者横幅 -更新应用程序图标上的数字 - 播放声音


本地通知
--示意图 




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

本地通知 

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


调度本地通知的步骤 



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非常重要! 

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

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

技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong 
消息推送机制示意图 




Device Token
 

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

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

deviceToken
处理流程 




消息推送的实现步骤 

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


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

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





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





从证书颁发机构请求证书 





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




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

选择验证字使用的
App ID 




上传
CSR文件 




下载生成的验证字文件 




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

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





新建开发许可证文件 




选择
App ID 





技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
Thanks!
 Q & A 

© chenyilong. Powered by Postach.io


作者:
出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
本文版权归作者和博客园共有,欢迎转载,
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/ChenYilong/p/3560137.html