[iOS 開發] app無法訪問本地相冊,且不顯示在設置 -隱私 - 照片中


  近幾天在使用iOS8的Photos Framework訪問本地相冊時,app即不會彈出是否允許訪問提示框,也無法顯示在iPhone的設置-隱私-照片的訪問列表中,代碼如下:

   PHAuthorizationStatus authorizationStatus = [PHPhotoLibrary authorizationStatus];
    if (authorizationStatus == PHAuthorizationStatusAuthorized) {
        [self getCameraRollAlbum]; //獲取本地照片
    } else {
        [self initNoPermissionView]; //顯示無權限的提示view
    }

調試發現,[PHPhotoLibrary authorizationStatus] 返回的是 PHAuthorizationStatusNotDetermined。

之后在蘋果的官方文檔中的authorizationStatus 方法的最后看到這么一段話:

If this method returns PHAuthorizationStatusNotDetermined, you can call the requestAuthorization:method to prompt the user for photo library access permission.

意思是如果authorizationStatus返回的是PHAuthorizationStatusNotDetermined,可以通過調用 requestAuthorization: 方法來提示用戶是否允許該app訪問用戶相冊。

之后就在代碼中添加了這個方法,並重新運行app:

  PHAuthorizationStatus authorizationStatus = [PHPhotoLibrary authorizationStatus];
    if (authorizationStatus == PHAuthorizationStatusAuthorized) {
        [self getCameraRollAlbum]; //獲取本地照片
    } else {
        if (authorizationStatus == PHAuthorizationStatusNotDetermined) {
            [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { //彈出訪問權限提示框
                if (status == PHAuthorizationStatusAuthorized) {
                    [self getCameraRollAlbum];
                } else {
                    [self initNoPermissionView];
                }
            }];
        } else {
             [self initNoPermissionView]; //顯示無權限的提示view
        }
       
    }

之后嘗試訪問本地相冊的時候會主動彈出提示框,無論選擇是或否,app都會顯示在設置-隱私-照片 列表中。

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM