首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 14 : UNUserNotificationCenter requestAuthorizationWithOptions始终失败,并显示“此应用程序不允许通知”

问iOS 14 : UNUserNotificationCenter requestAuthorizationWithOptions始终失败,并显示“此应用程序不允许通知”
EN

Stack Overflow用户
提问于 2020-09-19 09:13:05
回答 3查看 1K关注 0票数 4

我找不到解决方案,对此大吃一惊。我有这样的代码:

代码语言:javascript
复制
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
        UNAuthorizationOptionSound | UNAuthorizationOptionBadge;

[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions
        completionHandler:^(BOOL granted, NSError * _Nullable error) {
             NSLog(@"%i %@",granted, error);
        }];

然后它立即进入调用处理程序,而不显示通知权限。

代码语言:javascript
复制
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上它立即失败。

EN

回答 3

Stack Overflow用户

发布于 2020-09-30 05:31:12

我的问题是在产品名称部分使用土耳其字符。

https://developer.apple.com/forums/thread/660648

在我的例子中,构建设置-打包-产品名称不是英文。更改为英语并工作。

票数 3
EN

Stack Overflow用户

发布于 2020-09-19 09:42:49

问题是你漏掉了一个步骤。在请求授权之前,调用getNotificationSettingsWithCompletionHandler:并查看结果对象的authorizationStatus。如果是UNAuthorizationStatusDenied,那么继续下去就没有意义了。

票数 0
EN

Stack Overflow用户

发布于 2020-09-20 10:37:09

我的产品名称是日语的。当产品名称不是英文时,就会出现上述问题!如果我将产品名称改为英文,它就可以工作了!我已经通过Apple Feedback Assistant提交了一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63964374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档