iOS push過程中常見的問題

iOS中消息推送走的是蘋果的APNS,關於其工作原理網上一搜一大把,大家可自行從網上搜索.

DeviceToken在使用過程中的注意點:在iOS7之前單一環境下(Develop/Distribution)每一個設備一個DeviceToken;iOS7及以上單一環境下(Develop/Distribution),一個bunkered對應一個DeviceToken.

iOS收不到push的情況歸納:

1).appID是否把push開關打開了
2).系統設置裏面是否把相應app的通知開關關閉了
3).appID是否是帶“*”的
4).前後端證書appID和後端推送證書appID是否是同一個
5).前端環境和後端環境是否相同(同爲developer或同爲distribution)
6).後端推送證書是否過期(有效期一般爲一年)
7).如果是拿不到deviceToken,並且IOS系統設置中通知開關部分打開,這時手動切換一下其它開關的狀態,使其可接受到deviceToken(蘋果的bug,一般是由於用戶打開部分推送開關的情況下,把整個接受推送的開關關閉掉,然後卸載再重裝app所致)
8).app在系統設置通知裏關閉接受消息通知,這時如果再重新安裝app,開關狀態依舊關閉(ios8以上一個系統版本有這個問題)
9).看看手機是否設置了代理,測試人員經常設置代理進行測試。
10).後端推送數據包過大,IOS8之前推送支持256個字節,IOS8之後支持2K,這時候需要上報deviceToken時,把系統版本號也上報上去,便於推送時根據不同版本號進行不同長度的數據推送。

iOS收到不該收的push怎麼辦?

iOS後臺需要定期去蘋果後臺調用feedback接口,刪除不必要的deviceToken,而且如果我們帳號退出登錄某一臺設備之後,一定要進行解綁,確保物流和訂單之類的消息不會推錯設備。

蘋果通知中心消息點擊之後不消失怎麼辦?

如果推送到 APNs 時,Badge number 被指定爲0 ,則可能出現 push消息在通知中心被點擊後,儘管調用了   [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 但 APNs 消息在通知中心不會被刪除的情況。 這種情況可以按如下代碼調用以清除通知中心的 push通知。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1 ];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; 

iOS push消息可以定製嗎?

App客戶端可以進行一些定製,比如接收消息的時間段(或者靜音時間段)、對某類消息設置定製與否,後臺在消息推送時可根據相應的定製參數進行相應過濾。
iOS push消息可以做那些方面的擴展?
1).可以對一些實時性較強消息推送過來之後,運用today擴展進行展示,比如一些熱銷或促銷商品。(可參考淘寶app的展示)
2).push 消息到達之後,如果app沒有啓動,則可以讓其在後臺運行,並下載相應的消息詳情,保存到本地,待app應用打開之後再從本地加載相應消息。
3).可結合Apple Watch做相應的展示,一些物流消息的展示如果與Apple Watch配對的iphone處於黑屏狀態下,則可在Watch上進行展示。(Watch上只有界面展示,處理邏輯在iphone上)

iOS push推送測試和調試

可以用PushMeBaby或php腳本來從Mac系統上進行推送。
Distribution環境的調試由於無法聯機調試,可以通過查看真機log以及崩潰日誌來進行調試


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章