//推送
if ([applicationrespondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
//IOS8
//创建UIUserNotificationSettings,并设置消息的显示类类型
UIUserNotificationSettings *notiSettings = [UIUserNotificationSettingssettingsForTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeAlert | UIRemoteNotificationTypeSound) categories:nil];
[[UIApplicationsharedApplication]registerUserNotificationSettings:notiSettings];
} else{ // ios7
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert)];
}
上面的是判断iOS系统版本 iOS7及iOS8+不一样
//注册成功后获取deviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSString *deviceTempToken = [[[[deviceToken description]stringByReplacingOccurrencesOfString: @"<"withString:@""]stringByReplacingOccurrencesOfString: @">"withString: @""]
stringByReplacingOccurrencesOfString: @" "withString: @""];
//保存deviceToken
[[NSUserDefaultsstandardUserDefaults] setValue:deviceTempTokenforKey:@"deviceToken"];
}
//获取用户选择的推送类型,并且需要手动调用获取token的方法
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings
{
[application registerForRemoteNotifications];
}
//注册获取deviceToken失败
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
NSLog(@"Regist fail%@",error);
}
//获取后台推送内容
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSLog(@"userInfo == %@",userInfo);
NSString *message = [[userInfo objectForKey:@"aps"]objectForKey:@"alert"];
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"提示"message:messagedelegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"确定", nil, nil];
[alert show];
}