DHAuthorizationManager
iOS授權(quán)集合,可同時請求多授權(quán)
支持授權(quán)
[√] Camera: 相機
[√] Microphone: 麥克風(fēng)
[√] PhoneLibrary: 相冊
[√] Contact: 通訊錄
[√] Calendar: 日歷
[√] Reminder: 提醒
[√] LocationWhenInUse: 試用期間的定位
[√] LocationAlways: 始終使用的定位
[√] AppleMusic: 媒體庫
[√] SpeechRecognition: 語音識別
[√] Siri
[√] Motion: 運動
[√] HealthUpdate: 健康更新
[√] HealthShare: 健康分享
[√] UserNotification: 本地推送
[√] BluetoothPeripheral: 藍(lán)牙
[√] Cellular: 蜂窩數(shù)據(jù)
你需要知道的!
注意
- AppleMusic: 必須用真機測試,不然方法無響應(yīng),可能引起內(nèi)存泄漏
-
HealthUpdate/HealthShare: 必須提供
NSSet<HKOjbectType*/HKSampleType*>*參數(shù) -
UserNotification: 必須提供
@(UNAuthorizationOptions)參數(shù) -
Siri: 需要打開
項目->TARGET->Capabilities->Siri
已知Bug——如果你有很好的解決辦法,請告知我,謝謝
[ ] UserNotification: 始終反饋已授權(quán),其中的
-requestAccess也沒反應(yīng)[ ] Cellular: 一直得不到正確狀態(tài)
[ ] BluetoothPeripheral: 得不到正確狀態(tài)
安裝
pod 'DHAuthorizationManager'
- 當(dāng)前版本:1.0.0
使用方法
1. 引用頭文件并設(shè)置為強引用屬性
- 設(shè)置為屬性,授權(quán)彈框才能正常顯示
#import "DHAuthorizationManager.h"
@property (nonatomic, strong) DHAuthorizationManager *authorizationManager;
2. 初始化
self.authorizationManager = [[DHAuthorizationManager alloc] init];
self.authorizationManager.delegate = self;
3. 請求授權(quán)
[self.authorizationManager checkAuthorizationForKey:DHAuthorizationKeyCamera|DHAuthorizationMicrophone withParameters:nil completion:^(NSDictionary <NSNumber *, NSNumber *> *_Nonnull result) {
// 授權(quán)結(jié)果result <@(DHAuthorizationKey), @(DHAuthorizationStatus)>
// do something...
}];
>> or
[self.authorizationManager checkAuthorizationForKey:DHAuthorizationKeyCamera|DHAuthorizationMicrophone withParameters:nil];
/** 授權(quán)結(jié)果result <@(DHAuthorizationKey), @(DHAuthorizationStatus)> */
- (void)authorizationResult:(NSDictionary <NSNumber *, NSNumber *> *)result {
// do something...
}
DHAuthorizationStatus說明
-
DHAuthorizationStatusDefault: 默認(rèn) -
DHAuthorizationStatusNotDetermined: 未決定。未曾請求過授權(quán),此時會嘗試請求授權(quán) -
DHAuthorizationStatusAuthorized: 已授權(quán) -
DHAuthorizationStatusNotConfigured: 未配置。info.plist文件未設(shè)置相應(yīng)的鍵值,用于編碼時測試 -
DHAuthorizationStatusDenied: 已拒絕。用戶已拒絕授權(quán) -
DHAuthorizationStatusRestricted: 受限制 -
DHAuthorizationStatusNotSupported: 系統(tǒng)版本或硬件不支持 -
DHAuthorizationStatusSystemSetting: 未提供授權(quán)方法,建議跳轉(zhuǎn)至系統(tǒng)進(jìn)行設(shè)置