registerForRemoteNotifications 仅适用于安装了 iOS 7 的 iPhone

Posted

技术标签:

【中文标题】registerForRemoteNotifications 仅适用于安装了 iOS 7 的 iPhone【英文标题】:registerForRemoteNotificationTypes does not work only with iOS7 installed iPhones 【发布时间】:2014-04-04 12:44:58 【问题描述】:

我的生产/开发证书和配置文件一切正常。并且下面的代码被成功调用 application:didRegisterForRemoteNotificationsWithDeviceToken: 并安装了 ios6 系统的设备

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

    // my implementations

    return YES;

但是当我使用安装了 iOS7 的设备进行调试时,didRegisterForRemoteNotificationsWithDeviceTokendidFailToRegisterForRemoteNotificationsWithError 都没有被调用。我使用Ad-hoc 分发为测试人员分发应用程序,iOS7 设备也存在同样的问题。

可能与我的问题有关的原因是什么?

附:我的XCode 版本:5.1 (5B130a)

【问题讨论】:

我遇到了类似的问题,但只有当用户选择了不允许来自提示的推送通知时。在这种情况下,这些代表都没有被调用。在显示提示时和所有后续调用。我已经使用 enabledRemoteNotificationTypes 进行了调查(请参阅***.com/a/23280876/344393),但是在提示用户之前以及在他们选择不允许之后,此值是 UIRemoteNotificationTypeNone。苹果提供一个 UIRemoteNotificationTypeNotSelected (或类似的东西)会很好 【参考方案1】:

它对我有用 希望能帮到你

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

return YES;
   







 -(void)application:(UIApplication *)application   didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

NSLog(@"%@",deviceToken);


【讨论】:

这对我来说很奇怪。我不知道为什么我的问题只适用于 iOS 7 设备【参考方案2】:

检查您的 Ad-Hoc 配置文件并确保已启用推送通知

【讨论】:

以上是关于registerForRemoteNotifications 仅适用于安装了 iOS 7 的 iPhone的主要内容,如果未能解决你的问题,请参考以下文章