通知中心缺少iOS应用程序

时间:2013-02-07 17:06:10

标签: iphone ios push-notification apple-push-notifications

问题: 该应用程序未出现在通知中心,并且在安装完成后无法立即收到推送通知,并且应用程序通过registerForRemoteNotificationTypes:注册推送通知。

详细说明:

  • 设备重启后,应用程序通常会出现在通知中心,之后一切正常。
  • 有时,应用程序会在安装和注册APN之后立即显示在通知中心(我仍然无法确认这一点,但我认为我偶然发现了这种情况)。
  • 每次用户登录时,以及每次用户分别使用位掩码(registerForRemoteNotificationTypes)和UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound注销时,应用都会调用方法UIRemoteNotificationTypeNone
  • enabledRemoteNotificationTypes会返回正确的值。
  • 最初我在注销时使用了unregisterForRemoteNotifications方法,但我将其更改为registerForRemoteNotificationTypes:UIRemoteNotificationTypeNone,因为怀疑这可能会导致问题。
  • 在开发和adhoc构建中都会出现此问题,无论应用程序是通过xcode还是itunes安装。

任何想法和建议将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:16)

我的一些设备发生了这种情况。 (没有出现在通知中心,也没有接到推送。)

通过执行以下操作来管理它:

  • 删除应用
  • 从设备中删除所有相关的配置文件。设置应用>一般>配置文件,然后点击与您的应用相关的每个配置文件,然后点击删除。在iOS 8/9上,设置不再存在,请使用XCode> Windows>装置>选择设备>显示配置文件...>然后删除个人资料
  • 关闭手机,然后再打开。
  • 给5分钟
  • 重新安装您的应用,应自动安装配置文件。
  • 启动应用并让它注册并填充。
  • 再次测试推送通知

对我们来说,它没有立即起作用,所以给它几分钟。

答案 1 :(得分:0)

Apple's documentation开始,分别在登录/注销时注册和取消注册应用程序可能存在问题:

  

应用程序应在每次启动时进行注册,并为其提供者提供当前令牌。

不确定取消注册,他们没有提及在他们的编程指南中取消注册,也许应该永远不会注销应用程序,服务器应该处理它,通过发送或不发送推送通知,具体取决于用户是否登录。这就是我过去的做法,从未遇到过这个问题,所以也许这种方法也适合你。

答案 2 :(得分:0)

好吧,我也有这个问题,我发现由于应用程序在上次安装之前卸载之前使用了unregisterForRemoteNotifications。

此外,如果应用程序再次安装并登录以注册远程通知,则会出现此问题。

它也发生在第一次安装时(重置iOS设备后安装)。如果您在登录前使用unregisterForRemoteNotifications,然后在登录操作中注册,则会出现此问题。

发生此问题时,您需要重新启动iOS设备。

对于unregisterForRemoteNotifications,我们无法阻止此问题,但我们可以降低问题发生的概率,方法是:

如果设备令牌在上次安装时未从提供程序中删除,则在登录前使用当前安装时的unregisterForRemoteNotifications; 否则,您永远不应该使用unregisterForRemoteNotifications。