iOS开发之打开系统设置通知权限页面
- (void)viewDidAppear:(BOOL)animated
{
//首先判断应用通知是否授权,注意iOS10.0之后方法不一样 if (@available(iOS 10.0, *)) { [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) { NSLog(@"未选择"); [self opentNotificationAlert]; }else if (settings.authorizationStatus == UNAuthorizationStatusDenied){ NSLog(@"未授权"); [self opentNotificationAlert]; }else if (settings.authorizationStatus == UNAuthorizationStatusAuthorized){ NSLog(@"已授权"); } }]; } else { if ([[UIApplication sharedApplication] currentUserNotificationSettings].types == 0) { [self opentNotificationAlert]; } } }
/** 跳转系统设置方法*/ - (void)opentNotificationAlert
{ /**< 弹出框 */ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"推送通知关闭" message:@"请前往打开通知,获取更多精彩瞬间!" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }]]; [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self.presentedViewController dismissViewControllerAnimated:YES completion:nil]; if (@available(iOS 10.0, *)) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil]; } else { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=NOTIFICATIONS_ID&path=com.xxx.xxx"]];//prefs:root=服务&path=项目bundleID
}
}];
[self presentViewController:alertController animated:YES completion:nil];
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!