我的应用程序中的推送通知在 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 上仍然有效的主要内容,如果未能解决你的问题,请参考以下文章