首先來看看官方的推送解析圖 :
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后臺,我們可以注冊一個免費的賬號去試一下