didFailToRegisterForRemoteNotificationsWithError:用户拒绝错误?

时间:2012-02-08 19:18:28

标签: ios push

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

4 个答案:

答案 0 :(得分:20)

我认为你的初始陈述(总是)是正确的。如果使用有效的配置文件正确签署了应用,则无论“设置”应用中的用户“通知”选项如何,调用registerForRemoteNotificationTypes:都会生成application:didRegisterForRemoteNotificationsWithDeviceToken:。根据我的经验,我看到application:didFailToRegisterForRemoteNotificationsWithError:被调用的唯一一次是因为应用程序签名不正确。有问题的错误提到“没有为申请找到有效的aps-环境权利”。

答案 1 :(得分:20)

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

线程中主要问题的答案是

应用程序:在使用错误的配置文件签名应用程序时调用didFailToRegisterForRemoteNotificationsWithError:

此外,

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

有些情况下iOS不会调用其中任何一种方法

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

对我来说,有2个文件拥有权利,在这里我添加了Aps-enviroment:production,并且在enter image description here之后起作用了