iOS消息推送的一些事情

来源:互联网 发布:红警2尤里的复仇mac版 编辑:程序博客网 时间:2024/05/09 05:11
在ios系统中,app应用程序无法在后台完成较多的任务,仅仅允许程序做一些有限的任务(如音视频播放、地理位置信息、voip)。然而,如果你想做一些有趣的事情,并且告知用户,甚至用户没有使用你的app应用程序,如收到一条微博信息,自己心爱的球队夺冠又或者晚餐已经准备好了等信息时,由于你的app应用程序没有运行(或者程序进入后台,进程被挂起),因此,可能无法接收到相关的消息。 
        然而,苹果提供了这类情况的解决方案,替代你的app应用程序定时获取事件或者在后台去处理这些事件,你需要搭建服务器端来处理这类事情。当感兴趣的事情发生时,服务器端会发送一条推送通知到你的app应用程序。
推送通知可以做三种显示情况,1文字信息,2一种声音,3一个徽章的标记号。你可以将以上三种情况任意组合,这取决于你的app应用程序。比如推送通知时,只显示声音和标记,不显示消息等。
1、推送通知流程简述
    (1) 首先用户必须确认需要接收到这些消息;
    (2)app程序接收到令牌信息;
    (3)将令牌信息发送到服务器端;
    (4)当感兴趣的事情发生时,你的服务器将向苹果的推送通知服务器(Apple Push Notification Service,以下简称APNS)发送通知;
    (5)APNS会向你的设备发送消息,即通知;
2、推送通知基本要求
    (1)首先需要iphone或者ipad设备,模拟器上无法对“推送通知”进行测试。因此,你必须在真机上进行测试;
    (2)需要加入ios开发者计划(99刀/年(个人)299刀/年(企业));
    (3)一台连接互联网的服务器,因为推送通知的发起者是你的服务器(provider);
3、推送通知内容解析
        服务器端(provider)负责创建消息推送通知,一个推送服务通知主要包含“设备令牌”和“负载”(定义的json信息的属性列表,负载最大运行值为256字节)。对于每个推送通知,服务器端(provider)必须构建一个严格遵守 RFC 4627 的 JSON 字典。 该字典必须包含一个键名为 aps 的字典。而 aps 的字典包含一个或多个属性,这些属性指定如下动作:
    (1)提示用户的警告信息(ios5后有所改变,但大体一致);
    (2)一个提示声音;
    (3)显示app应用程序的数字(徽章);
4、推送通知的局限性
        它们是不可靠的!不同的设备之间,他们的推送消息的时间可能存在不一致。
推送通知也可能不会被送达到指定设备。原因是可能所在wifi环境下端口被封、设备处于关机状态,又或者网络环境较差,以至无法正确送达。APNS会尽量与设备“握手”以此建立连接,但它只会尝试在有限的时间,一旦超时,推送通知将永远消失。

原创粉丝点击