ios APNS 訊息一直接收不到解決辦法

來源:互聯網
上載者:User
   下午的時候,我們的測試環境一直接收不到APNS的訊息(早上的時候收到了兩條)。經過處理最後解決了問題,記錄下,其他碼龍朋友看到的話,也可以參考參考下。
具體有如下幾條來排除問題的方案:
1.首先確保開啟當前APP的訊息推送允許設定。(Iphone設定裡面開啟,允許APP接收推送訊息)

2. 列印下deviceToken看看是否有值,或者直接在下面註冊成功的函數裡面打個斷點,看程式進不進來,單步調試下。
  (一般來說,只要deviceToken有值,就說明APNS已經註冊成功了。否則的話,要去研究並且添加下APNS註冊函數。
同時應該注意,有deviceToken返回,也不一定即時收到APNS的推送訊息(因為我們牛逼的greatewall,或者網路丟包)。多推幾條資訊,就可以收到,一般來說APNS到達率還是可以的。)

我的程式沒有deviceToken列印出來,在下面這個函數裡面打斷點也沒有進來。

3.確保當前登陸的手機號唯一登陸APP,一個手機號多個APP登陸的話,有可能也會收不到。

4.重新推出APP,重新登入下。(意味著重新註冊下APNS)

5.實在還是沒有deviceToken的話,把當前的APP刪除,重新裝一下。---我是用這種辦法,有了deviceToken,然後有了APNS的推送

註冊成功後,Apple會返回一個全球唯一的deviceToken給手機用戶端,然後通過下面的函數,就可以捕獲。

- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{    //發送token給服務端    if (deviceToken)    {        currentDeviceToken = [[[[deviceToken description]stringByReplacingOccurrencesOfString:@"<" withString:@""]stringByReplacingOccurrencesOfString:@">" withString:@""]stringByReplacingOccurrencesOfString:@" " withString:@""];        //        UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"" message:currentDeviceToken delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];//        [alterView show];         NSLog(@"deviceToken:________%@",currentDeviceToken);    }}


註冊失敗,會通過下面的函數來返回註冊失敗的錯誤原因

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{    NSLog(@"註冊推送失敗:%@",error);}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.