我的应用程序中的推送通知在 iPhone 6s 上停止工作,但在 iPad 上仍然有效

Posted

技术标签:

【中文标题】我的应用程序中的推送通知在 iPhone 6s 上停止工作,但在 iPad 上仍然有效【英文标题】:Push Notifications from my app stopped working on iPhone 6s but still work on iPad 【发布时间】:2015-10-09 06:49:48 【问题描述】:

我的自定义应用程序使用推送通知,我已对其进行了重建并将其加载到我的 iPad mini Retina 和 iPhone 6s(均为 ios 9.0.2)上。我已经在两者的设置中启用了应用程序的通知,并且在 Xcode 中我已经检查过

a) 在 plist 中设置了“必需的后台模式,以便应用下载内容以响应推送通知。

b) 在 Capabilities 下,Push Notifications 设置为 on

c) 在功能下,后台模式已选中远程通知。

所以 iPad 会收到推送通知,但 iPhone 不会。我已经试用了 3 部新 iPhone。

想法?

【问题讨论】:

【参考方案1】:

由于 iOS8 推送注册发生了变化,如果您从未从 iOS7 更新,这将是您第一次遇到此问题。事实上,不推荐使用的旧方法在 iOS8 和 9 上会静默失败。 这是从 = iOS8 注册的 sn-p。

 if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
    
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

    
    else
    
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
    

【讨论】:

我已经编写了代码来执行您的建议。几乎相同(使用 [application 而不是 [UIApplication sharedApplication] 并检查选择器 isRegisteredForRemoteNotifications)我尝试用您的代码替换,但 iPhone 仍然没有收到通知。

以上是关于我的应用程序中的推送通知在 iPhone 6s 上停止工作,但在 iPad 上仍然有效的主要内容,如果未能解决你的问题,请参考以下文章

iPhone中的推送通知问题

推送通知不适用于 iphone 中的生产证书?

iPhone应用程序中的推送通知[关闭]

我的应用推送通知仅在我客户的 iPhone 上不起作用

推送通知未在 iPhone 应用程序中的多个设备上传递?

与 iphone 中的推送通知相关