推送

//推送

if([applicationrespondsToSelector:@selector(isRegisteredForRemoteNotifications)])

{

//iOS8

//创建UIUserNotificationSettings,并设置消息的显示类类型

UIUserNotificationSettings*notiSettings = [UIUserNotificationSettingssettingsForTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIRemoteNotificationTypeSound)categories:nil];

[[UIApplicationsharedApplication]registerUserNotificationSettings:notiSettings];

}else{// ios7

[applicationregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeAlert)];

}

上面的是​判断iOS系统版本  iOS7及iOS8+不一样

//注册成功后获取deviceToken

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

{

NSString*deviceTempToken = [[[[deviceTokendescription]stringByReplacingOccurrencesOfString:@"<"withString:@""]stringByReplacingOccurrencesOfString:@">"withString:@""]

stringByReplacingOccurrencesOfString:@" "withString:@""];

//保存deviceToken

[[NSUserDefaultsstandardUserDefaults]setValue:deviceTempTokenforKey:@"deviceToken"];

}

//获取用户选择的推送类型,并且需要手动调用获取token的方法

- (void)application:(UIApplication*)application didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings

{

[applicationregisterForRemoteNotifications];

}

//注册获取deviceToken失败

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error{

NSLog(@"Regist fail%@",error);

}

//获取后台推送内容

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo{

NSLog(@"userInfo == %@",userInfo);

NSString*message = [[userInfoobjectForKey:@"aps"]objectForKey:@"alert"];

UIAlertView*alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:messagedelegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"确定",nil,nil];

[alertshow];

}

你可能感兴趣的:(推送)