iOS授權(quán)集合 DHAuthorizationManager

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è)置

DHAuthorizationDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容