使用融云 SDK 避坑指南之 iOS13 推送失败

171 篇文章 0 订阅
120 篇文章 1 订阅

融云 SDK 支持苹果推送,当我使用的设备升级到 iOS13 及以上时,推送突然就不能用了😫,经过半天的排查,终于找到了问题,原来是 deviceToken 格式变了,具体可以参考 https://blog.csdn.net/yingBi2014/article/details/103457160

问题原因:由于 iOS13以后,苹果的 deviceToken 格式变了,但是上传给融云的 deviceToken 处理方式还是使用的老方式,导致了推送无法收到。

处理方法:

  1. 升级融云的 SDK,他们提供了新的接口,需要升级到 2.9.25 以后的版本,可以适配新格式的 deviceToken,且坚固老版本。

    - (void)application:(UIApplication *)application
        didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        [[RCIMClient sharedRCIMClient] setDeviceTokenData:deviceToken];
    }
    
  2. 如果不想升级 SDK,那就得单独处理一下

     (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;
    }
    

想了解更多的关于融云推送的问题,可以去看看他们的文档,写的还是挺详细的,图文都有 https://docs.rongcloud.cn/v3/views/im/ui/guide/private/notify/push/ios.html

融云官网:https://www.rongcloud.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值