iOS10及以上版本的通知授权方式

UNUserNotificationCenter *userNotificationCenter = [UNUserNotificationCenter currentNotificationCenter];
        userNotificationCenter.delegate = self;
//获取通知设置信息
        [userNotificationCenter getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {

            //用户还未做出选择
            if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) {

                //弹出授权框
                [userNotificationCenter requestAuthorizationWithOptions:UNAuthorizationOptionAlert + UNAuthorizationOptionBadge + UNAuthorizationOptionSound completionHandler:^(BOOL granted, NSError * _Nullable error) {

                    if (granted) {

                    }else{
                        //首次授权为未授权状态,之后为已授权状态
                        DLog(@"没有开启通知");
                    }
                }];
            }else if (settings.authorizationStatus == UNAuthorizationStatusDenied){

                //用户不同意授权时,弹出提示(最好只弹一次)
                UIAlertController *noticeNotificationAlertController = [UIAlertController alertControllerWithTitle:@"友情提示" message:@"建议您开启通知功能,以便及时获取相关信息" preferredStyle:UIAlertControllerStyleAlert];
                [noticeNotificationAlertController addAction:[UIAlertAction actionWithTitle:@"忽略" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

                }]];

                [noticeNotificationAlertController addAction:[UIAlertAction actionWithTitle:@"去开启" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {

                    NSURL *appSettingsUrl = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
                    if ([[UIApplication sharedApplication] canOpenURL:appSettingsUrl]) {
                        [[UIApplication sharedApplication] openURL:appSettingsUrl];
                    }
                }]];

                [self.window.rootViewController presentViewController:noticeNotificationAlertController animated:YES completion:NULL];
            }else{

                //已授权
                DLog(@"已授权通知");
            }
        }];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值