1. 程式人生 > >ios APNS 訊息一直接收不到解決辦法

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

   下午的時候,我們的測試環境一直接收不到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 *)application
didRegisterForRemoteNotificationsWithDeviceToken:(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);
}


相關推薦

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

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

虛擬機中linux系統啟動後 一直黑屏解決辦法

參數錯誤 初始化 原因 網絡編程 應用 編程 計算 body dns 情況一(一直黑屏):宿主機(windows)管理員模式運行CMD, netsh winsock reset 然後重啟電腦   netsh winsock reset命令,作用是重置 Winsock

IOS APNS訊息推送框架介紹(pushy)以及詳細使用方法

最近公司需要做IOS訊息推送的功能,我負責後臺推送,IOS端資料處理以及回撥我不負責,本篇文章主要介紹基於java的apns訊息推送,使用框架為pushy。 宣告:我先前也沒有接觸過這個IOS推送,自己研究了兩天,通過百度,對比各個框架的優缺點,最後選擇了這個框架,有說的不對的地方,還

VMware中安裝Contos一直黑屏 解決辦法

原因:電腦BIOS中的Virtualization Technology設定被禁止了。 解決方案: (1)重啟電腦,進入BIOS將其設定為Enabled。(注:不同品牌電腦進入BIOS的方法不盡相同,請網上查閱對應電腦型號的進入BIOS的方法) (2)進入BIOS後,在Security

子執行緒PostThreadMessage發訊息PreTranslateMessage接收

建立一個MFC基於對話方塊工程: CMFCApplication1Dlg和CMyThread類: 按鈕   UINT mainThreadID; void CMFCApplication1Dlg::OnBnClickedOk() { // TODO: 在此新增控制元

【Jenkins】Jenkins管理員密碼一直錯誤的解決辦法

簡介:安裝Jenkins時設定了admin的密碼,下次再登入時,輸入當時設定的密碼一直提示密碼錯誤,以下方法可以解決 找到C:\Users\lingshu\.jenkins目錄下config.xml檔案,先備份,然後刪除檔案中的以下程式碼,並儲存檔案 <us

iOS上架被拒原因及解決辦法

簡單的記錄一下,近期APP上架所遇到的坑爹事兒吧!! 第一次提交: 第二天給了回覆,內容如下: 1、Guideline 2.5.1 - Performance - Software Requirements Your app uses the "prefs:root=" non-public U

NodeJs 實現IOS APNS 訊息推送服務

公司的專案要求接入伺服器自己接入原生的ISO 推送服務,不再接第三方的SDK,網上也有很多例子講解什麼是APNS ,如何獲取證書,怎麼接入,剛開始還是聽順利的,就是在獲取pem證書上面有些小問題,不過後來ios開發還是解決了,最後他自己做了一個獲取證書的總結。 我做的就是nodejs 服

阿里雲CentOS7.4啟動Tomcat9沒有報錯,埠已經開放,但是瀏覽器一直等待響應解決辦法7

tomcat9,啟動和退出均無報錯。centOS7.4防火牆已關閉,阿里雲防火牆已經開放埠,telnet測試伺服器的埠也通過了,**瀏覽器訪問以後沒有提示“無法訪問”,而是一直在連線中,並且等待伺服器響應。**並且如果把瀏覽器放任一邊不管,可能會開啟幾次tomc

iOS稽核被拒原因以及解決辦法

一、 Reasons 2.2: Apps that exhibit bugs will be rejected----- 2.2 -----We found that your app exhibited one or more bugs, when reviewed

iOS開發-CGAffineTransformMakeRotation改變了中心解決辦法

坑爹的。  為了這個問題折騰了2個小時。 惱..今天在寫一個時鐘demo的時候, 時針的旋轉用到了CGAffineTransformMakeRotation, 按理說. 影象的旋轉是以影象本身的中心(center)為錨點的, 也就是在旋轉過程中, 它的中心是固定的。 就和我們

關於html5 audio 標簽在ios系統上能正常自動播放的解決辦法

mini function 必須 listener 解決 right rip 方式 主動 由於 iOS Safari 限制不允許 audio autoplay, 必須用戶主動交互(例如 click)後才能播放 audio, 因此我們通過一個用戶交互事件來主動 play 一下

js 頁面history.back()返回上一頁,ios 重新加載ready的解決辦法

pos details load() http () nbsp 跳轉 set body 參考自 http://blog.csdn.net/hbts_901111zb/article/details/76691900 項目中,主頁面有很多輸入字段,當由主

iOS Git建立gitignore檔案, gitignore 起作用解決辦法

1.建立gitignore檔案 開啟終端, cd 進入到專案所在目錄,輸入touch gitignore即可, 然後編輯 gitignore, 編輯成功之後, mv gitignore .gitignore換名字, 這個時候.gitignore檔案會自動消失, 點檔案不能顯示的. 在該資料夾下打

iOS開發技巧之:Xcode8 NSLog列印json解決辦法

據說國外的大神是這麼解決的:   #ifdef DEBUG #define SLog(format, ...) printf("class: <%p %s:(%d) > method: %s \n%s\n", self, [[[NSString stringWith

Tomcat的Start可以啟動起來,但是Debug啟動突然啟動起來,一直停在 Class.getDeclaredConstructors0(boolean) line: not available [native method] 的解決辦法

Tomcat的Start模式可以啟動起來,但是Debug模式啟動突然啟動不起來,一直停在 Class<T>.getDeclaredConstructors0(boolean) line: not available [native method] 檢視、嘗試百度或者谷歌的很多解決方法,最後發現是

iOS HTTPS證書受信任解決辦法

寫在前面: 如果看完這篇文章對你有所幫助,並且你自認為比較熱愛學習,那麼請移步《全棧技術交流群歡迎你》,加入我們,一起學習 之前開發App的時候服務端使用的是自簽名的證書,導致iOS開發過程中呼叫HTTPS介面時,證書不被信任 - (void)URLSession:(NSURLS

RabbitMQ中的消費者處理訊息HandleDelivery生效的原因及解決辦法

今天遇到一個問題就是在使用rabbitMQ的時候,消費者接受了訊息但訊息處理函式沒有執行也就是handleDelivery沒有執行,也沒有報錯。 之後看了原始碼才發現,引數名字改了 可以看到在沒有加AMQP之前handleDelivery是灰色的,所以它沒有

Tomcat-前端所傳表單資料太大,導致後臺引數接收到為null的解決辦法

    原因是傳輸的資料大小超過了tomcat的預設post請求大小,預設為2097152Byte,也就是2M的大小。 如果要傳輸超過2M的資料則需要修改tomcat的server.xml下的maxPostSize屬性,如下: <Connector port="

ios 常見錯誤及解決辦法(定時更新)

這類錯誤是因為將專案拷貝到新的電腦造成的錯誤(原因是專案名稱不同造成的),解決辦法:更改Build Setting中的專案名稱就好了。    Build Setting ->Product Name  未完待續。。。。