关于权限相关的文章已经发了不少:iOS开发中的这些权限,你搞懂了吗?、如何获取iOS应用网络权限?、iOS开发中权限再度梳理等,这些文章罗列在一起,多少显得有些啰嗦。
这篇核心是简短介绍一下重构后的开源库: JLAuthorizationManager、JLAuthorizationManager-Swift,这个开源库迭代完成时间是2019.02.12,此后,便将该库集成到了当前项目中使用,目前为止,还算比较稳定,特推荐给老铁~
OC版本
JLPhotosPermission *permission = [JLPhotosPermission instance];
NSLog(@"current authoriazation status:%@", [self authorizationWithStatus:permission.authorizationStatus]);
NSLog(@"%@添加权限Plist描述", permission.hasSpecificPermissionKeyFromInfoPlist ? @"是" : @"没有");
[permission requestAuthorizationWithCompletion:^(BOOL granted) {
NSLog(@"%@ : %@", [self titleWithType:permission.type], granted ? @"已授权" : @"未授权");
}];
Swift版本:
let permission = PhotosPermission()
print("\(type.title) -> status:\(permission.authorizedStatus())")
permission.requestPermission { granted in
print(granted ? "已授权 -> \(type.title)" : "未授权 -> \(type.title)")
}
OC版本
JLLocationAlwaysPermission *permission = [JLLocationAlwaysPermission sharedInstance];
NSLog(@"current authoriazation status:%@", [self authorizationWithStatus:permission.authorizationStatus]);
NSLog(@"%@添加权限Plist描述", permission.hasSpecificPermissionKeyFromInfoPlist ? @"是" : @"没有");
[permission requestAuthorizationWithCompletion:^(BOOL granted) {
NSLog(@"%@ : %@", [self titleWithType:permission.type], granted ? @"已授权" : @"未授权");
}];
Swift版本:
let permission = LocationAlwaysPermission.shared
print("\(type.title) -> status:\(permission.authorizedStatus())")
permission.requestPermission { granted in
print(granted ? "已授权 -> \(type.title)" : "未授权 -> \(type.title)")
}
关于该权限库相关更新信息不会再以简书的形式通知更新了,把更新的信息都在微信公众号上通知,感兴趣的可以关注公众号:猿视角(iOSDevSkills)