2016-09-21 344 views
0

我正在開發一個需要訪問用戶的位置和日曆的應用程序,彈出窗口應該出現,但由於某種原因,它不顯示,我不斷得到拒絕,這裏是日曆的代碼訪問:彈出窗口不顯示

- (void)askAuthorization 
{ 

    EKAuthorizationStatus authorizationStatus = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]; 
    BOOL needsToRequestAccessToEventStore = (authorizationStatus == EKAuthorizationStatusNotDetermined); 

    if (needsToRequestAccessToEventStore) { 
     [self.store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
      if (granted) { 
       // Access granted 
       NSLog(@"User granted access"); 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self.delegate userDidAuthorizeCalendarReadingsWithError:error]; 
       }); 

      } else { 
       // Denied 
       NSLog(@"User did not grant access. To grant access, go to Settings > Privacy > Calendars > VirtualAssitant"); 
       [self.delegate userDidNotAuthorizeCalendarReadingsWithError:error]; 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self.delegate userDidAuthorizeCalendarReadingsWithError:error]; 
       }); 

      } 
     }]; 
    } 

}

,我沒有得到一個彈出和AuthorizationStatusForEntityType:EKEntityTypeEvent值是 「拒絕」!

至於位置我去設置 - >與隱私>的位置,發現它設置爲從不爲我的申請,我不得不手動將其更改爲始終。 有誰知道爲什麼或已經通過相同的問題,並可以幫助我。

我試圖清理build文件夾和正在重置地點和隱私設置,但是當我重建我的應用同樣的事情發生,我沒有得到一個彈出詢問權限和值設置爲拒絕!

回答

0

的權限彈出像相機,相冊,地點,聯繫人等任何系統訪問...只會出現一次(每個接入類型)。

一旦它被呈現,然後被接受或拒絕,那麼它將永遠不會再出現。

因爲它已經回來了與許可「被拒絕」,這意味着它已經出現了,你拍了拍「不允許」。

更改權限的應用程序後,即進入應用程序設置和手動更改的唯一辦法。

您可以通過從設備上刪除應用程序並再次安裝應用程序,強制彈出權限彈出窗口。

+0

我也試着從設備上刪除應用程序並重新安裝,我得到了同樣的問題,我甚至在不同的設備上嘗試過,但沒有彈出窗口顯示,值始終被拒絕。 – Lara