融云 SDK 支持蘋(píng)果推送战授,當(dāng)我使用的設(shè)備升級(jí)到 iOS13 及以上時(shí)丈氓,推送突然就不能用了??,經(jīng)過(guò)半天的排查宫纬,終于找到了問(wèn)題抚岗,原來(lái)是 deviceToken 格式變了,具體可以參考 https://blog.csdn.net/yingBi2014/article/details/103457160
問(wèn)題原因:由于 iOS13以后哪怔,蘋(píng)果的 deviceToken 格式變了宣蔚,但是上傳給融云的 deviceToken 處理方式還是使用的老方式向抢,導(dǎo)致了推送無(wú)法收到。
處理方法:
-
升級(jí)融云的 SDK胚委,他們提供了新的接口挟鸠,需要升級(jí)到 2.9.25 以后的版本,可以適配新格式的 deviceToken亩冬,且堅(jiān)固老版本艘希。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [[RCIMClient sharedRCIMClient] setDeviceTokenData:deviceToken]; }
-
如果不想升級(jí) SDK,那就得單獨(dú)處理一下
(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSString *token = [self getHexStringForData:deviceToken]; [[RCIMClient sharedRCIMClient] setDeviceToken:token]; } - (NSString *)getHexStringForData:(NSData *)data { NSUInteger len = [data length]; char *chars = (char *)[data bytes]; NSMutableString *hexString = [[NSMutableString alloc] init]; for (NSUInteger i = 0; i < len; i ++) { [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]]; } return hexString; }
想了解更多的關(guān)于融云推送的問(wèn)題硅急,可以去看看他們的文檔覆享,寫(xiě)的還是挺詳細(xì)的,圖文都有 https://docs.rongcloud.cn/v3/views/im/ui/guide/private/notify/push/ios.html
融云官網(wǎng):https://www.rongcloud.cn/