我找不到解决方案,对此大吃一惊。我有这样的代码:
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions
completionHandler:^(BOOL granted, NSError * _Nullable error) {
NSLog(@"%i %@",granted, error);
}];然后它立即进入调用处理程序,而不显示通知权限。
2020-09-18 18:05:46.657991-0700 My App [404:9600] 0 Error Domain=UNErrorDomain Code=1 "Notifications are not allowed for this application" UserInfo={NSLocalizedDescription=Notifications are not allowed for this application}我遗漏了什么?警报甚至不会弹出。
注意:同样的代码在iOS 13.x上运行没有问题,在iOS 14上它立即失败。
发布于 2020-09-30 05:31:12
我的问题是在产品名称部分使用土耳其字符。
https://developer.apple.com/forums/thread/660648
在我的例子中,构建设置-打包-产品名称不是英文。更改为英语并工作。
发布于 2020-09-19 09:42:49
问题是你漏掉了一个步骤。在请求授权之前,调用getNotificationSettingsWithCompletionHandler:并查看结果对象的authorizationStatus。如果是UNAuthorizationStatusDenied,那么继续下去就没有意义了。
发布于 2020-09-20 10:37:09
我的产品名称是日语的。当产品名称不是英文时,就会出现上述问题!如果我将产品名称改为英文,它就可以工作了!我已经通过Apple Feedback Assistant提交了一个问题。
https://stackoverflow.com/questions/63964374
复制相似问题