iOS 13未调用DidRegisterForRemotionTificationswithDeviceToken(目标C)
我正在使用下面的代码注册推送通知警报iOS 13未调用DidRegisterForRemotionTificationswithDeviceToken(目标C),ios,objective-c,swift,apple-push-notifications,ios13,Ios,Objective C,Swift,Apple Push Notifications,Ios13,我正在使用下面的代码注册推送通知警报 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; center.delegate = self; NSLog(@"fapa=1"); [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | U
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
NSLog(@"fapa=1");
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
NSLog(@"fapa=error==%@", error);
if(!error){
NSLog(@"fapa=registering now");
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"fapa=registering now 2");
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
下面是我拿到代币的地方
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
但问题是,这个方法并没有从iOS 13调用(不确定是仅针对iOS 13.4.1还是针对所有iOS 13)
有人知道为什么会发生这种情况,或者苹果更新了什么,或者这是一个bug吗
很抱歉添加了Swift标签,但我添加了Swift标签,因为大多数开发人员只使用Swift问题进行筛选(即使他们知道Objective C。所以为了引起注意,我也添加了Swift
编辑1 有点奇怪 当我连接到移动网络时,通过WIFI,我获得了token&DidRegisterforRemotenotifications,设备启动 现在,当我再次回到WIFI时,设备停止运行后,用于删除通知的注册表没有开始工作 这是什么?有人面对过这个奇怪的问题吗
编辑2
我所做的是把上面的代码(注册推送通知)放在一个函数中,并每5秒调用一次该函数。 令人惊讶的是,我现在得到了token,但iOS 13以后的token,token和以前不同。我需要进一步检查这个问题。检查后,我将发布这个问题的答案
但是每5秒调用一次register push函数就成功了。我所做的是在一个函数中放入上述代码(注册推送通知),然后每5秒调用该函数。 令人惊讶的是,我现在得到了token,但iOS 13以后的token,token和以前不同。我需要进一步检查这个问题。检查后,我将发布这个问题的答案 但是每5秒调用一次寄存器推送函数就可以了
我给出这个答案是因为没有人会理解我上面的编辑1是答案。最好有一个问题的答案。这是否回答了你的问题:@grow4gaurav:“只需重新启动你的iPhone。就这么简单,在90%的情况下它就能解决你的问题。”->我不能告诉客户,他也不会理解,我确信您在调试时会遇到这个错误(这就是为什么您知道没有调用方法的原因)在特定的手机上,不是吗?顺便说一句,在帖子中,人们也分享了其他解决方案,值得一试。@grow4gaurav:我尝试了许多其他的解决方案,但都没有效果。比方说,我重新启动后,它就起了作用。但问题是我将如何修复它?重新启动不是正确的解决方案。实际上,其他用户也面临着这个问题,并通过在网络之间切换来修复(请看iOS 13的问题):我想苹果已经在这里解释过了:没有代表回调