区块链技术博客
www.b2bchain.cn

iOS权限申请与设置求职学习资料

D0b2wT.gif

本文介绍了iOS权限申请与设置求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

前言

这篇博客写下iOS的各种权限的申请与设置

很多内容参考自这篇博客

下面包括了如下权限内容:

  1. 日历
  2. 通讯录
  3. 相机
  4. 相册
  5. 麦克风
  6. 位置

基础

  1. 上述权限iOS都给了请求接口,调用后弹出一个请求权限的弹窗,但是只会弹一次,在用户允许/拒绝后下次调用就不会弹了,所以要自己判断
  2. 在【APP设置页】更改部分权限(比如日历/相机/麦克风等)后,系统会杀死APP进程
  3. 跳【APP设置页】用UIApplicationOpenSettingsURLString,APP跳转部分可以看我这一篇博客

各权限判断/请求的系统接口

下面只以日历权限为例子,其他的接口看这篇博客

日历权限判断

EKAuthorizationStatus EKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; switch (EKstatus) {   case EKAuthorizationStatusAuthorized:       NSLog(@"Authorized");       break;   case EKAuthorizationStatusDenied:       NSLog(@"Denied'");       break;   case EKAuthorizationStatusNotDetermined:       NSLog(@"not Determined");  // 这个很重要,如果是这个状态表示日历权限还没有请求过       break;   case EKAuthorizationStatusRestricted:       NSLog(@"Restricted");       break;   default:       break; }

日历权限请求

EKAuthorizationStatus eKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; if (eKstatus == EKAuthorizationStatusNotDetermined) {     EKEventStore *store = [[EKEventStore alloc]init];     [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError * _Nullable        error) {          if (granted) {             dispatch_async(dispatch_get_main_queue(), ^{                  [tableView reloadData];              });          }      }];  } else {     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];     if ([[UIApplication sharedApplication] canOpenURL:url]) {         if ((iOS 10.0, *)) {             [[UIApplication sharedApplication] openURL:url options: completionHandler:nil];         } else {             [[UIApplication sharedApplication] openURL:url];         }     } }

表现为如果从来没有请求过日历权限,则弹出系统的日历权限弹窗,如果请求过了,则会跳到【App设置页】

前言

这篇博客写下iOS的各种权限的申请与设置

很多内容参考自这篇博客

下面包括了如下权限内容:

  1. 日历
  2. 通讯录
  3. 相机
  4. 相册
  5. 麦克风
  6. 位置

基础

  1. 上述权限iOS都给了请求接口,调用后弹出一个请求权限的弹窗,但是只会弹一次,在用户允许/拒绝后下次调用就不会弹了,所以要自己判断
  2. 在【APP设置页】更改部分权限(比如日历/相机/麦克风等)后,系统会杀死APP进程
  3. 跳【APP设置页】用UIApplicationOpenSettingsURLString,APP跳转部分可以看我这一篇博客

各权限判断/请求的系统接口

下面只以日历权限为例子,其他的接口看这篇博客

日历权限判断

EKAuthorizationStatus EKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; switch (EKstatus) {   case EKAuthorizationStatusAuthorized:       NSLog(@"Authorized");       break;   case EKAuthorizationStatusDenied:       NSLog(@"Denied'");       break;   case EKAuthorizationStatusNotDetermined:       NSLog(@"not Determined");  // 这个很重要,如果是这个状态表示日历权限还没有请求过       break;   case EKAuthorizationStatusRestricted:       NSLog(@"Restricted");       break;   default:       break; }

日历权限请求

EKAuthorizationStatus eKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; if (eKstatus == EKAuthorizationStatusNotDetermined) {     EKEventStore *store = [[EKEventStore alloc]init];     [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError * _Nullable        error) {          if (granted) {             dispatch_async(dispatch_get_main_queue(), ^{                  [tableView reloadData];              });          }      }];  } else {     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];     if ([[UIApplication sharedApplication] canOpenURL:url]) {         if ((iOS 10.0, *)) {             [[UIApplication sharedApplication] openURL:url options: completionHandler:nil];         } else {             [[UIApplication sharedApplication] openURL:url];         }     } }

表现为如果从来没有请求过日历权限,则弹出系统的日历权限弹窗,如果请求过了,则会跳到【App设置页】

前言

这篇博客写下iOS的各种权限的申请与设置

很多内容参考自这篇博客

下面包括了如下权限内容:

  1. 日历
  2. 通讯录
  3. 相机
  4. 相册
  5. 麦克风
  6. 位置

基础

  1. 上述权限iOS都给了请求接口,调用后弹出一个请求权限的弹窗,但是只会弹一次,在用户允许/拒绝后下次调用就不会弹了,所以要自己判断
  2. 在【APP设置页】更改部分权限(比如日历/相机/麦克风等)后,系统会杀死APP进程
  3. 跳【APP设置页】用UIApplicationOpenSettingsURLString,APP跳转部分可以看我这一篇博客

各权限判断/请求的系统接口

下面只以日历权限为例子,其他的接口看这篇博客

日历权限判断

EKAuthorizationStatus EKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; switch (EKstatus) {   case EKAuthorizationStatusAuthorized:       NSLog(@"Authorized");       break;   case EKAuthorizationStatusDenied:       NSLog(@"Denied'");       break;   case EKAuthorizationStatusNotDetermined:       NSLog(@"not Determined");  // 这个很重要,如果是这个状态表示日历权限还没有请求过       break;   case EKAuthorizationStatusRestricted:       NSLog(@"Restricted");       break;   default:       break; }

日历权限请求

EKAuthorizationStatus eKstatus = [EKEventStore  authorizationStatusForEntityType:EKEntityTypeEvent]; if (eKstatus == EKAuthorizationStatusNotDetermined) {     EKEventStore *store = [[EKEventStore alloc]init];     [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError * _Nullable        error) {          if (granted) {             dispatch_async(dispatch_get_main_queue(), ^{                  [tableView reloadData];              });          }      }];  } else {     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];     if ([[UIApplication sharedApplication] canOpenURL:url]) {         if ((iOS 10.0, *)) {             [[UIApplication sharedApplication] openURL:url options: completionHandler:nil];         } else {             [[UIApplication sharedApplication] openURL:url];         }     } }

表现为如果从来没有请求过日历权限,则弹出系统的日历权限弹窗,如果请求过了,则会跳到【App设置页】

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » iOS权限申请与设置求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们