iOS中提供了两种通知机制:
本地通知
推送通知
本地通知和推送通知可以让不在前端运行的应用程序告知用户应用程序内部发生的信息。这些信息可以是一条消息,也可以是即将要发生的事件,亦或者是远程服务器上有新的数据等
通知的展现方式:
显示一个UIAlertView或者横幅
更新应用程序图标上的数字
播放声音
本地通知
本地通知是一个UILocalNotification的实例,包含以下三个重要属性:
调度时间:要使用本地通知,必须指定通知触发的日期以及时间,还可以设置通知的重复间隔,例如按周重复或者按月重复
通知类型:用于指定提示文字信息,操作按钮的标题,应用程序图标上的数字以及要播放的声音
自定义数据:本地通知还可以包含一个自定义数据的字典。
调度本地通知的具体步骤:
实例化UILocalNotification对象
通过fireDate属性,设置操作系统触发通知的日期和时间
如果将timeZone属性设置被当前地区对应的NSTimeZone对象,系统会自动根据所在时区调整通知触发时间
设置通知的属性:
alertBody:信息内容
alertAction:消息标题
applicationIconBadgeNumber:图标上的数字
soundName:要播放的声音
UILocalNotificationDefaultSoundName:使用默认系统声音
通过userInfo属性还可以将一个数据字典附加到本地通知
调度并提交本地通知
提示:通过userInfo可以在用户通过通知进入系统时定位到所需的位置
消息推送机制原理
苹果提供了一堆服务器,每个ios设备和这些服务器保持了一个长连接,ios版本更新提示、手机时钟校准等操作都是通过这个连接实现
消息推送服务简称为APNS(Apple Push Notification Service),是该长连接中的一个服务,如果要向用户发消息,必须通过APNS进行中转
消息推送不支持群发,只能一个一个发
消息包一般由两部分组成:标示用户手机的id(32个字节)+消息体(<=256Bytes),消息体是json字符串,传输过程使用SSL加密
标示用户手机的ID又被称为Device Token,个手机都不一样,Device Token非常重要!
原文:http://www.cnblogs.com/huangzheng/p/4395677.html