Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 13未调用DidRegisterForRemotionTificationswithDeviceToken(目标C)_Ios_Objective C_Swift_Apple Push Notifications_Ios13 - Fatal编程技术网

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的问题):我想苹果已经在这里解释过了:没有代表回调