APP启动时权限的判断包括语音,图片,视频,音频等等

2021-06-10  本文已影响0人  小灬博

.h文件

import <Foundation/Foundation.h>

/** 权限类型 */
typedef NS_ENUM(NSUInteger, YYAuthorizationType) {
YYAuthorizationTypePhotos = 0, // 相册
YYAuthorizationTypeCamera, // 相机
YYAuthorizationTypeMicrophone, // 麦克风
YYAuthorizationTypeCameraAndMicrophone, // 相机和麦克风 (视频)
YYAuthorizationTypeLocation, // 位置
YYAuthorizationTypeNotification, // 通知
};

/** 权限状态 */
typedef NS_ENUM(NSUInteger, YYAuthorizationStatus) {
YYAuthorizationStatusNotDetermined = 0, // 未询问
YYAuthorizationStatusNoPermission, // 无权限
YYAuthorizationStatusHavePermission, // 有权限
};

@interface YYSystemAuthorization : NSObject

/** 检测用户是否有权限访问通知 */
@property (nonatomic, assign) BOOL isCanUseNotification;

/**
程序进入后台
*/

/**
检测某种权限的权限状态 (不包含通知, 通知的权限用"isCanUseNotification"判断)

@param authType 权限类型
@return 当前的权限状态
*/

/**
检测权限并引导去开启

@param authType 权限类型
@param viewController 相关视图控制器
@param completion 点击确定后回调 (havePermission:是否有权限)
*/

/**
无权限, 引导去开启 (不进行权限检测)

@param authType 权限类型
@param viewController 相关视图控制器
@param completion 点击确定后回调 (havePermission:是否有权限)
*/

.m文件

import "YYSystemAuthorization.h"

import <Photos/Photos.h>

import <AVFoundation/AVFoundation.h>

import <CoreLocation/CoreLocation.h>

@interface YYSystemAuthorization () <CLLocationManagerDelegate>

/** 相关视图控制器 */
@property (nonatomic, weak) UIViewController *viewController;

/** 点击确定后回调 */
@property (nonatomic, copy) void (^completion)(BOOL havePermission);

/** 位置权限管理对象 */
@property (nonatomic, strong) CLLocationManager *locationManager;

@end

@implementation YYSystemAuthorization

/** 程序进入后台 */

pragma mark - 某种权限的权限状态

/** 某种权限的权限状态 */

pragma mark - 检测权限并引导去开启

/** 检测权限并引导去开启 */

/** 无权限, 引导去开启 (不进行权限检测) */

pragma mark - 相册

/** 检测相册权限并引导去开启 */

/** 检测用户的相册权限 */

pragma mark - 相机

/** 检测相机权限并引导去开启 */

/** 检测用户的相机权限 */

pragma mark - 麦克风

/** 检测麦克风权限并引导去开启 */

/** 检测用户的麦克风权限 */

pragma mark - 相机和麦克风

/** 检测相机和麦克风权限并引导去开启 */

pragma mark - 位置

/** 检测位置权限并引导去开启 */

/** 检测用户的位置权限 */

/** 获取定位授权 */

pragma mark - CLLocationManagerDelegate

/** 定位授权状态改变 */

pragma mark - 通知

/** 检测通知权限并引导去开启 */

/** 检测用户是否有权限访问通知 */

pragma mark - 第一次询问授权时, 用户点击了"不允许" 处理

pragma mark - 无权限处理

/** 引导去开启相关权限 */

@end

上一篇下一篇

猜你喜欢

热点阅读