iOS上有两种消息通知,一种是本地消息(Local Notification),一种是远程消息(Push Notification,也叫Remote Notification),设计这两种通知的目的都是为了提醒用户,现在有些什么新鲜的事情发生了,吸引用户重新打开应用。


一、APNS的推送机制

Apple对设备的控制非常严格,消息推送的流程必须要经过APNs:

ios 推送后台代码 ios消息推送机制_ios 推送后台代码


这里 Provider 是指某个应用的Developer,当然如果开发者使用AVOS Cloud的服务,把发送消息的请求委托给我们,那么这里的Provider就是AVOS Cloud的推送服务程序了。上图可以分为三步:


第一步:AVOS Cloud推送服务程序把要发送的消息、目的设备的唯一标识打包,发给APNs。


第二步:APNs在自身的已注册Push服务的应用列表中,查找有相应标识的设备,并把消息发送到设备。

第三步:iOS系统把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知




消息类型


一条消息推送过来,可以有如下几种表现形式:


1. 显示一个alert或者banner,展现具体内容


2. 在应用icon上提示一个新到消息数

3. 播放一段声音

开发者可以在每次推送的时候设置,在推送达到用户设备时开发者也可以选择不同的提示方式。


实现消息推送主要有两点:

1,App的推送证书

要能够完整实现一条消息推送,需要我们在App ID中打开Push Notifications,需要我们准备好Provisioning Profile和SSL证书,并且一定要注意Development和Distribution环境是需要分开的。最后,把SSL证书导入到AVOS Cloud平台,就可以尝试远程消息推送了。具体的操作流程可以参考我们的使用指南:iOS推送证书设置指南。


2,设备标识DeviceToken



第一步:App打开推送开关,用户要确认TA希望获得该App的推送消息


第二步:App获得一个DeviceToken


第三步:App将DeviceToken保存起来,这里就是通过[AVInstallation saveInBackground]将DeviceToken保存到AVOS Cloud

第四步:当某些特定事件发生,开发者委托AVOS Cloud来发送推送消息,这时候AVOS Cloud的推送服务器就会给APNs发送一则推送消息,APNs最后消息送到用户设备