didFailToRegisterForRemoteNotificationsWithError:用户拒绝错误?

问题描述 投票:0回答:4

如果用户拒绝启用推送通知,我们将通过 didFailToRegisterForRemoteNotificationsWithError 收到错误。有谁知道在这种情况下 NSError 对象中的代码是什么(以区别于,比如说,没有可用的连接)?

ios push
4个回答
22
投票

我不认为你最初的陈述(总是)成立。如果应用程序使用有效的配置文件正确签名,则无论用户在“设置”应用程序中选择“通知”,调用

registerForRemoteNotificationTypes:
都将导致
application:didRegisterForRemoteNotificationsWithDeviceToken:
。根据我的经验,我唯一一次看到
application:didFailToRegisterForRemoteNotificationsWithError:
被调用是因为应用程序签名不正确。有问题的错误提到“没有找到适用于应用程序的有效 aps 环境权利”。


21
投票

虽然这个问题很旧,并且同意@Jerred的大部分答案,但我还是想发布更新的答案。

帖子中主要问题的答案是NO

application:didFailToRegisterForRemoteNotificationsWithError: 当应用程序使用不正确的配置文件进行签名时,会被调用。

还有,

application:didRegisterForRemoteNotificationsWithDeviceToken:仅当用户在通知中心(在“设置”应用程序中)为您的应用程序启用徽章、横幅/警报或声音设置中至少一项时才会被调用。

在某些情况下,iOS 不会调用这两个方法中的任何一个

  • 当用户拒绝授予应用程序发送推送通知的权限时
  • 当没有网络连接并且用户被授予发送推送通知的权限时。
  • 当用户在“设置”应用程序中的通知中心禁用应用程序的推送通知时。

3
投票

根据我的经验,

didFailToRegisterForRemoteNotificationsWithError:
方法是为更严重的情况保留的,这会阻止应用程序向用户显示通知权限请求对话框。我所知道的情况包括应用程序在不支持推送通知的设备上运行(例如模拟器),或者应用程序二进制文件中 aps 环境权利中的一些配置错误。


2
投票

对我来说,有 2 个文件包含权利,这里我添加了 Aps-enviroment :生产,并且在之后工作了

回答者:https://www.kproapps.com

© www.soinside.com 2019 - 2024. All rights reserved.