2017-02-27 22 views
2

私は連絡先フレームワークを使用しています。 Settings app -> App name -> Turn Contacts off拒否連絡先(連絡先フレームワーク、iOS)

ユーザが設定画面でアプリの連絡先の権限をオフにしている場合は、ダイアログを表示してそれらを有効にすることができますかに連絡先?あたかもaccess = always falseのようです。ユーザーが設定で連絡先を無効にすると、アクセスは許可されませんか?

は、ここに私の関連するコードです:

func requestForAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { 
    let authorizationStatus = CNContactStore.authorizationStatus(for: CNEntityType.contacts) 

    switch authorizationStatus { 
    case .authorized: 
     completionHandler(true) 

    case .denied, .notDetermined: 
     self.contactStore.requestAccess(for: CNEntityType.contacts, completionHandler: { (access, accessError) -> Void in 
      if access { 
       completionHandler(access) 
      } 
      else { 
       //Access is always false 
       if authorizationStatus == CNAuthorizationStatus.denied { 
        completionHandler(false) 
       } 
      } 
     }) 

    default: 
     completionHandler(false) 
    } 
} 
+0

アクセスを要求経由でアプリの設定を開くことによってこれを行うことができます。ユーザーがアクセスを拒否した場合は、アクセスを要求している機能を使用するためにアプリ設定で有効にする必要があることを示すビューを表示できます。 – dan

答えて

2

ユーザーが連絡先へのアクセスを拒否していたらありません、あなたが設定アプリにそれらを指示する必要があります。

は、あなただけのシステム権限は、あなたがそれを行う最初の時間を促し示しUIAlertViewControllerを表示し、alertAction

UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!)