繁体   English   中英

没有为 iOS 13 调用 didRegisterForRemoteNotificationsWithDeviceToken(目标 C)

[英]didRegisterForRemoteNotificationsWithDeviceToken not called for iOS 13 (Objective C)

我正在使用以下代码注册推送通知警报。

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)。

有谁知道为什么会发生这种情况或Apple更新某些东西或这是一个错误?


Sorry for adding Swift tag, but just I add as mostly many developers filter SO with Swift questions only (even they know Objective C. So just to bring in attention, I add swift too.


编辑 1

有什么奇怪的。

当我从 WIFI 连接到移动网络时,我得到了令牌和 didRegisterForRemoteNotificationsWithDeviceToken 开始工作。

现在,当我 go 再次回到 WIFI 时,didRegisterForRemoteNotificationsWithDeviceToken 开始工作。

这是什么? 有人遇到过这个奇怪的问题吗?


编辑 2

我所做的是将上述代码(用于注册推送通知)放在一个 function 中,并每 5 秒调用一次 function。 令人惊讶的是,我现在得到了令牌,但是 iOS 13 以后的令牌,令牌不像我以前那样。 我需要进一步检查这个问题。 一旦我检查,我将发布这个问题的答案。

但是每 5 秒调用一次 register push function 就可以了。

我所做的是将上述代码(用于注册推送通知)放在一个 function 中,并每 5 秒调用一次 function。 令人惊讶的是,我现在得到了令牌,但是 iOS 13 以后的令牌,令牌不像我以前那样。 我需要进一步检查这个问题。 一旦我检查,我将发布这个问题的答案。

但是每 5 秒调用一次 register push function 就可以了。

我提出这个答案是因为没有人会理解我上面的编辑 1 就是答案。 最好有问题的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM