//推送
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];
}
网友评论