#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define iOS8 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")
//-------------------------------
- (void)registerPushNotice:(NSDictionary *)launchOptions{
//注册推送
if(iOS8)
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];
}
if (launchOptions) {
if([self pushNotificationOpen])//推送打开
{
//推送启动
NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (pushNotificationKey) {
if([UIApplication sharedApplication].applicationIconBadgeNumber>0){
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
[self didReceiveRemoteNotification:pushNotificationKey];
}
}
else
{
//do nothing...
}
}
else {
if([UIApplication sharedApplication].applicationIconBadgeNumber>0){
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
}
}
//判断推送是否打开
- (BOOL)pushNotificationOpen
{
if (iOS8)
{
UIUserNotificationType types = [[UIApplication sharedApplication] currentUserNotificationSettings].types;
return (types & UIRemoteNotificationTypeAlert);
}
else
{
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
return (types & UIRemoteNotificationTypeAlert);
}
}