前提:准備一台接收推送的設備(消息推送不支持模擬器)
步驟及問題排查:
1.參照開發文檔,集成SDK ,這里就不一一介紹了.(注意,個推的ios推送只能使用透傳)
2.創建證書.
1》蘋果的推送證書分為開發證書(測試用)和生產證書(上線用).這里需要注意的就是,創建證書時必須打開證書的push 服務,
2》先創建開發證書,再去創建生產證書. 證書創建好了之后別忘了重新生成描述文件,檢查一下描述文件是否開啟了推送.
3》證書創建好后,建議先到個推平台上測試一下證書是否正確,如果顯示"測試可用",就說明沒有問題;如果是其他,說明證書創建有問題,建議刪除重新生成.
3.測試.
測試有兩種方式:個推平台跟公司后台提供的接口.
(1)個推平台測試如圖:
如果你接到了推送消息,那么good ,你已經接近成功了.
如果沒有
1》首先你得檢查一下該應用是否允許推送.(提醒樣式應該選橫幅)
2》如果收到了推送的文本,但是沒有收到推送的聲音
A: 系統默認聲音:檢查一下你的音量設置,以及看一下是否開啟了勿擾模式。
B: 自定義聲音:檢查本地音頻的路徑跟sound的路徑是否一致; 音頻的格式是否正確(支持.wav)
(2)公司后台測試
找后台人員要接口。
如果平台上推送成功,但是后台接口測試推送不成功的話,那就要問一下后台,是否集成了IOS的透傳模板.(如果能接收到在線消息,離線消息接收不到的話,99.9%是因為后台的原因.我在開發的時候就出現了這個情況,后台以為android和IOS的方法是通用的,就只集成一個,結果android能正常接收到推送,ios不能. 這是因為離線還是走的蘋果的APNS,在線的時候才走個推自己的流程,而后台並沒有啟動APNS服務,導致只能接收在線消息,離線消息接不到.)
4.處理接收到的推送
應用在后台收到推送后會自動播放音頻;進入前台后則不會播放音頻,若想在前台也播放音頻,只需在個推的 didReceiveRemoteNotification 方法中加入以下代碼
關於角標:
[GeTuiSdk setBadge:_numb];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:_numb]; //可用全局變量累加消息
點擊圖標或者通知欄進入程序后,清空角標:
[GeTuiSdk resetBadge];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
提示音:可以使用系統自帶的,也可播放音頻
NSString *path = [[NSBundle mainBundle]pathForResource:@"sound" ofType:@"wav"];
// 2 將路徑字符串轉換成url,從本地讀取文件,需要使用fileURL
NSURL *url = [NSURL fileURLWithPath:path];
// 3 初始化音頻播放器
_player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
// 4 設置循環播放
// 循環次數=0,聲音會播放一次
// 循環次數=1,聲音會播放2次
// 循環次數小於0,會無限循環播放
[_player setNumberOfLoops:0];
// 5 准備播放
[_player prepareToPlay];
[_player setVolume:0.9f];
[_player play];
停止播放
[_player stop];
5. 發布.
1》發布之前
創建帶推送的生產證書以及描述文件 --》在xcode中 更改描述文件(使用開啟了推送功能的那個) --》在個推平台上將開發證書改成生產證書 --》打包上線.
2》發布上線后
如果測試的時候推送正常,上線成功之后發現推送不了,那么你得檢查一下發布之后的版本deviceToken 是否生成了,如果沒有,那么十有八九是你證書沒有創建好,或者是打包的時候描述文件沒有配置好.
補充:上線之后的app,如何查看控制台打印的消息,-->先將手機連接電腦,打開xcode ,狀態欄window->devices->選中你的手機,就可以查看日志里面有沒有生成deviceToken了.
注意:上線成功之后平台上的證書就不能隨意更改啦,不然可能會影響線上用戶的使用的.
6. 消息推送的流程
1》、app注冊APNS消息推送。
2》、iOS從APNS Server獲取並接收devicetoken。
3》、app將device token發送給服務端。
4》、服務端向APNS服務發送消息。
5》、APNS服務將消息發送給app。
7. 個推消息推送的原理
1》如果用戶在線,個推應用內透傳消息到個推SDK,將消息通知手機客戶端;
2》如果用戶不在線,個推服務器將消息發送到蘋果APNS服務器,然后APNS下發通知到手機客戶端。