iOS適配精確位置開關(guān)

iOS14增加了精確位置開關(guān),當(dāng)獲取定位權(quán)限,用戶關(guān)閉了精確位置

比如獲取當(dāng)前連接的WiFi信息的時候,會無法獲取

1. 在info.plist中設(shè)置對應(yīng)場景的key和value

key用于申請該場景的精確位置權(quán)限,value用于申請權(quán)限時的描述

    <key>NSLocationTemporaryUsageDescriptionDictionary</key>
     <dict>
     <key>wifiListPurposeKey</key>
     <string>應(yīng)用需要精確位置獲取附近WiFi信息,用于配置設(shè)備網(wǎng)絡(luò)</string>
    </dict>

wifiListPurposeKey在后續(xù)場景申請權(quán)限時用到,必須保持一致

2. 獲取當(dāng)前精確位置開關(guān)狀態(tài)
#import <CoreLocation/CoreLocation.h>

- (void)preciseSwitch:(void(^)(BOOL))complete {
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    if (@available(iOS 14.0, *)) {
        CLAccuracyAuthorization accuracy = [locationManager accuracyAuthorization];
        if (accuracy == CLAccuracyAuthorizationFullAccuracy) {
            if (complete) {
                complete(YES);
            }
        } else {
            if (complete) {
                complete(NO);
            }
            [locationManager requestTemporaryFullAccuracyAuthorizationWithPurposeKey:@"wifiListPurposeKey"
                                                                          completion:^(NSError * _Nullable error) {
            }];
        }
    } else {
        if (complete) {
            complete(YES);
        }
    }
}
  • 這邊做個版本保護,只有14以上才需要判斷開關(guān)狀態(tài)。
- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey:(NSString *)purposeKey completion:(void(^ _Nullable)(NSError * _Nullable))completion
  • 需要注意的是這里的completion并不是用戶選擇授權(quán)后的回調(diào),應(yīng)該是授權(quán)過程的中異常回調(diào),而不是用戶選擇的回調(diào).
  • 如果需要在用戶選擇授權(quán)后處理邏輯,可以考慮在監(jiān)聽這個UIApplicationDidBecomeActiveNotification事件,在這里去處理。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
?著作權(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)容