一:简介
在使用APNS之前,有这么几点需要了解:
1:APNS是免费的。只要有开发者账号便可以申请APNS证书。
2:APNS又是不可靠的,苹果对信息推送的可靠性不做任何保证。
3:APNS对消息的大小是有限制的,总容量不能超过256字节。
清楚了以上三条,各位应该对APNS适用的应用情景有所了解了。
APNS的工作流程如下图所示:
1 & 2:用户第一次安装应用并第一次启动时,会弹出对话框提示应用需要开通推送,是否允许,如果允许,应用会得到一个硬件token。
有三点需要注意:
第一,此token唯一与设备相关,同一设备上不同应用获取的token是一样的;
第二,当应用被卸载,然后重新安装时,确认对话框不会再出现,自动继承前一次安装的设置信息;
第三,推送设置可以在设置-通知中进行更改。可以选择开启消息框、声音以及badge number中的一种或多种。
3:应用将受到的token发送到服务端,也就是APNS消息的源头。
4:应用服务器通过token及证书向苹果的消息服务器发送消息。
5:苹果将接收到的消息发送到对应设备上的对应应用。
6:如果应用未处于Active状态(未启动或backgroud),默认设置下,屏幕顶部会弹出消息框,同时有声音提示,点击改消息框会进入应用,如不点击则应用图标上会有badge number出现。
二:使用步骤
APNS的使用并不复杂,但容易出错的环节比较多,特别是证书申请的部分,要特别的注意。
下面根据我按教程实际操作的步骤进行阐述:
准备工作:
A: 一个Xcode工程,我们将其命名为MyPushChat,以及一个对应的App ID.
B:一台能用于调试的iOS设备(APNS只能在实体设备上工作,模拟器无法运行)
step1:
在"应用程序-使用工具"中打开"钥匙串访问"(Keychain Access),如下图所示:
在接下来的对话框中选择存储到磁盘,邮件可随意填写,名称命名为MyPushChat
点击“继续”,将文件名设为"MyPushChat",点击存储。这样,会得到一个名为"MyPushChat.certSigningRequest"的文件,此文件要妥善保管。
从刚刚创建的csr文件中到处私钥,具体操作如下图所示:
将导出的文件命名为MyPushChatKey.p12,并输入密码,请牢记此密码,这里姑且设为123456abc。
此时,我们