关键代码
UIUserNotificationSettings *userNotificationSetting = [[UIApplication sharedApplication] currentUserNotificationSettings];
if( userNotificationSetting.types == UIUserNotificationTypeNone )
{
//表示系统当前的通知开关是打开的
}
详细代码示范:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
if(swh.isOn){//推送开关是打开的,注册远程通知
cactusAppDelegate *delegateCactus=(cactusAppDelegate *)[UIApplication sharedApplication].delegate;
[delegateCactus registerAPNSDirect];
[[NSUserDefaults standardUserDefaults] setInteger:EnablePush forKey:ifPush];
[[NSUserDefaults standardUserDefaults] synchronize];
[ISStat probePushSetting:@"pushon"];
}
else{
cactusAppDelegate *delegateCactus=(cactusAppDelegate *)[UIApplication sharedApplication].delegate;
[delegateCactus removeRemoteNotification];
[[NSUserDefaults standardUserDefaults] setInteger:DisenablePush forKey:ifPush];
}
dispatch_async(dispatch_get_main_queue(), ^{
UIUserNotificationSettings *userNotificationSetting = [[UIApplication sharedApplication] currentUserNotificationSettings];
userNotificationSetting.types == UIUserNotificationTypeNone ?[swh setOn:NO animated:YES]:[swh setOn:YES animated:YES];
[self.tableView reloadData];
});
});