开发者社区> 问答> 正文

【移动推送】iOS端获取deviceToken的问题怎么解决?

已解决

在Xcode 11 beta和iOS 13 beta中iOS端使用SDK V1.9.8及更低的版本,出现无法将返回的deviceToken上传到CloudPush服务器的问题,以至于最终推送通知失败。相关代码如下。

/** * iOS系统方法APNS注册成功回调,在该方法中, 将返回的deviceToken上传到CloudPush服务器。 * 备注:在开发环境测试时,iOS 13+系统个别设备上初次安装有概率不会调用该方法,以至于没有获取到token,则上报失败。 * 这是苹果系统的原因(期待他们的修复),一般线上不会出现该问题,如果测试中出现该问题: * 1.检查设备网络是否正常。 * 2.删除App重新安装测试下。 * 3.拔掉数据连接线,重新连接, 删除App,重新安装测试下。 * 4.删除App,更改下bundleid编译运行下,之后在切换原先的bundleid编译运行测试下。 * 5.打开手机设备通用页面,在底端关机,然后重启。 * 6.是否在其他地方重写了该方法;是否集成过信鸽。 * *  备注:在iOS 9以后每次删除App,然后重新安装App,deviceToken都会发生改变。 *  如果调用了该方法,但是SDK依旧获取不到deviceToken,需要您检查一下SDK的版本是否大于1.9.8的版本。 * */- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {    NSLog(@"Upload deviceToken to CloudPush server.");    [CloudPushSDK registerDevice:deviceToken withCallback:^(CloudPushCallbackResult *res) {        if (res.success) {            NSLog(@"Register deviceToken success, deviceToken: %@", [CloudPushSDK getApnsDeviceToken]);        } else {            NSLog(@"Register deviceToken failed, error: %@", res.error);        }    }];}

展开
收起
EMAS支持组 2022-09-15 17:23:17 381 0
1 条回答
写回答
取消 提交回答
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载