zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//
//  SGPermission.h
//  SGQRCodeExample
//
//  Created by kingsic on 2022/7/8.
//  Copyright © 2022 kingsic. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
@class SGPermission;
 
typedef enum : NSUInteger {
    /// 相机
    SGPermissionTypeCamera,
    /// 相册
    SGPermissionTypePhoto,
} SGPermissionType;
 
typedef enum : NSUInteger {
    /// 未授权
    SGPermissionStatusNotDetermined,
    /// 已授权
    SGPermissionStatusAuthorized,
    /// 已拒绝
    SGPermissionStatusDenied,
    /// 受限制
    SGPermissionStatusRestricted,
} SGPermissionStatus;
 
NS_ASSUME_NONNULL_BEGIN
 
typedef void(^SGPermissionBlock)(SGPermission *permission, SGPermissionStatus status);
 
@interface SGPermission : NSObject
/// 对象方法获取权限状态
///
/// @param type        权限类型
/// @param block       权限状态回调
- (void)initWithType:(SGPermissionType)type completion:(SGPermissionBlock)block;
 
/// 类方法获取权限状态
///
/// @param type        权限类型
/// @param block       权限状态回调
+ (void)permissionWithType:(SGPermissionType)type completion:(SGPermissionBlock)block;
 
/// 权限状态为:SGPermissionStatusNotDetermined时,需请求授权
- (void)request:(void (^)(BOOL granted))handler;
 
@end
 
NS_ASSUME_NONNULL_END