推送通知无法使用从ios7到ios8.1的更新版本

问题描述:

我将设备从ios7更新为ios8.1.Push通知无法在更新版本中使用。 我在ios7中完成了推送通知的相同流程。 代码也被更新推送通知无法使用从ios7到ios8.1的更新版本

#ifdef __IPHONE_8_0 
     //Right, that is the point 
     UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge 
    |UIUserNotificationTypeSound 
    |UIUserNotificationTypeAlert) categories:nil]; 
     [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; 
#else 
    //register to receive notifications 
    UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes]; 
#endif 

通过使用上面的代码还我因此未得到notification.Please帮助我在ios8.1推送通知。

感谢inadvance

用于接收推送通知的方法也发生了变化:

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier 

更多信息,请参见Handling Local and Remote NotificationsUIApplicationDelegate

下面是一个应用程序委托的一个完整的例子:

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
     NSLog(@"Requesting permission for push notifications..."); // iOS 8 
     UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: 
      UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | 
      UIUserNotificationTypeSound categories:nil]; 
     [UIApplication.sharedApplication registerUserNotificationSettings:settings]; 
    } else { 
     NSLog(@"Registering device for push notifications..."); // iOS 7 and earlier 
     [UIApplication.sharedApplication registerForRemoteNotificationTypes: 
      UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | 
      UIRemoteNotificationTypeSound]; 
    } 
    return YES; 
} 

- (void)application:(UIApplication *)application 
    didRegisterUserNotificationSettings:(UIUserNotificationSettings *)settings 
{ 
    NSLog(@"Registering device for push notifications..."); // iOS 8 
    [application registerForRemoteNotifications]; 
} 

- (void)application:(UIApplication *)application 
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token 
{ 
    NSLog(@"Registration successful, bundle identifier: %@, device token: %@", 
     [NSBundle.mainBundle bundleIdentifier], token); 
} 

- (void)application:(UIApplication *)application 
    didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 
{ 
    NSLog(@"Failed to register: %@", error); 
} 

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier 
    forRemoteNotification:(NSDictionary *)notification completionHandler:(void(^)())completionHandler 
{ 
    NSLog(@"Received push notification: %@, identifier: %@", notification, identifier); // iOS 8 
    completionHandler(); 
} 

- (void)application:(UIApplication *)application 
    didReceiveRemoteNotification:(NSDictionary *)notification 
{ 
    NSLog(@"Received push notification: %@", notification); // iOS 7 and earlier 
} 
+0

没有我的情况下工作?我没有找到关于这些新变化的任何文档?请给一些有用的链接 – iphonemaclover 2014-11-18 09:31:39