首先来看看官方的推送解析图 :
1、推送简单思路:
注: 下文中, A为张三 , B为李四
①A把自己设备的UDID和应用程序的BundleID发送给苹果APNs服务器;
②苹果的APNs服务器会将一个加密生成的DeviceToken发送给A;
③A将生成的DeviceToken和应用程序的标志(QQ号码或者是ID)发送给QQ服务器,服务器将这些数据存进数据库中(id, name, QQ号,DeviceToken)
注:B也会用同样的方式将自己的这些信息存进数据库的
④如果B给A发信息,发送请求到QQ服务器,去数据库中查找A对应的DeviceToken,找到A的DeviceToken后,通知苹果APNs服务器,通过A的DeviceToken找到A设备,将要发送的消息推送给A;
2、在使用推送时发现推送不到的原因有:
①首先先检查自己的设置是否允许该应用程序接受推送的通知;
②如果设备没有问题,就排查是否是绑定的deviceToken除了问题
③或者是UDID和deviceToken的绑定出现了问题
④就是证书的问题也会导致推送失败(比如说你安装的是测试证书,但是在选择推送的时候选择的发布证书,也会导致无法推送)
⑤就是设备的网络问题,如果网络不好也会导致推送丢包(但是这种概率不是特别高)
建议:极光推送有一个cms后台,我们可以注册一个免费的账号去试一下