iOS 之消息推送(個推)---個人小結


前提:准備一台接收推送的設備(消息推送不支持模擬器)

步驟及問題排查:

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下發通知到手機客戶端。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM