JPush極光推送會有時綁定不了registrationID的解決方法


在使用極光推送的過程中,服務(wù)器端有時候會遇到設(shè)備綁定不了registrationID的狀況。
經(jīng)過排查發(fā)現(xiàn),向服務(wù)器接口傳registrationID的時候,一定幾率極光推送的服務(wù)還沒初始化完成,導(dǎo)致registrationID沒有值。

然后發(fā)現(xiàn)極光的API里面有這個:

@class UILocalNotification;
extern NSString \*const kJPFNetworkDidSetupNotification;     // 建立連接
extern NSString \*const kJPFNetworkDidCloseNotification;     // 關(guān)閉連接
extern NSString \*const kJPFNetworkDidRegisterNotification;  // 注冊成功
extern NSString \*const kJPFNetworkDidLoginNotification;     // 登錄成功
extern NSString \*const
    kJPFNetworkDidReceiveMessageNotification;         // 收到消息(非APNS)
extern NSString \*const kJPFServiceErrorNotification;  // 錯誤提示

一開始我從UILocalNotification這個命名,以為是以本地通知的形式傳過來的,但是在

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

里沒接收到通知。

然后翻閱極光的文檔,在個角落發(fā)現(xiàn)了- -這個通知要自己注冊的。。醉了。。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

xxxxxx

//注冊
NSNotificationCenter \*defaultCenter = [NSNotificationCenter defaultCenter];
    [defaultCenter addObserver:self selector:@selector(networkDidReceiveMessage:) name:kJPFNetworkDidLoginNotification object:nil];

}
//通知方法
- (void)networkDidLoginMessage:(NSNotification *)notification {
    
    //調(diào)用接口
    DLog(@"\n\n極光推送注冊成功\n\n");

   //通知后臺registrationID
    xxxxx
    
    //注銷通知
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kJPFNetworkDidLoginNotification object:nil];
}

醬紫就能防止registrationID還沒生成,就調(diào)服務(wù)器接口的情況了

這個通知每次啟動的時候都會走,所以最后還是要加個常量,來判斷一下,只跟服務(wù)器進行一次綁定registrationID的通訊。

簡書已經(jīng)棄用,歡迎移步我的小專欄:
https://xiaozhuanlan.com/dahuihuiiOS

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,874評論 10 16
  • 不同版本極光推送SDK集成各有差異,集成時一定要注意版本號,樓主已將博文更新成最新的SDK JPush v3.0....
    i順頌時宜閱讀 8,013評論 37 170
  • 版本記錄 前言 前一篇已經(jīng)對ios新特性進行了介紹,這一篇則對ios的SDK進行說明。1. 極光推送集成(一)2....
    刀客傳奇閱讀 1,422評論 0 1
  • 推送技術(shù)產(chǎn)生場景: --服務(wù)器端主動性: 客戶端與服務(wù)器交互都是客戶端主動的, 服務(wù)器一般不能主動與客戶端進行數(shù)據(jù)...
    原軍鋒閱讀 35,169評論 4 60
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139

友情鏈接更多精彩內(nèi)容