2013-10-12 3 views
12

Я импортирую все контакты адресной книги в свое приложение. В настоящее время предупреждение о запросе разрешения «разрешить доступ к контактам» выполняется при запуске приложения.Запросить разрешение на доступ к Контакты iOS

Как его изменить, так что разрешение запрашивается в другом месте приложения? Одним нажатием кнопки, как Instagram?

Смотреть эту картину:

enter image description here

+0

Проверить [Запросить программный доступ к контактам] (http://stackoverflow.com/questions/12648244/programmatically-request-access-to-contacts) –

+0

iOS 9 и выше: http://stackoverflow.com/a/ 39374916/569789 – Zaraki

ответ

22

Вы можете прочитать документацию HERE.

Вот код, чтобы вы начали:

//First of all import the AddRessBookUI 
    #import <AddressBookUI/AddressBookUI.h> 

    // Request to authorise the app to use addressbook 
    ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(nil, nil); 

    if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) { 
    ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) { 
     if (granted) { 
      // If the app is authorized to access the first time then add the contact 
      [self _addContactToAddressBook]; 
     } else { 
      // Show an alert here if user denies access telling that the contact cannot be added because you didn't allow it to access the contacts 
     } 
    }); 
    } 
    else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) { 
    // If the user user has earlier provided the access, then add the contact 
    [self _addContactToAddressBook]; 
    } 
    else { 
    // If the user user has NOT earlier provided the access, create an alert to tell the user to go to Settings app and allow access 
    } 

Вот еще несколько обучающих программ, которые вы хотели бы увидеть, что вы можете найти HERE и HERE.

Надеюсь, это поможет!

UPDATE: Вы должны использовать didFinishLaunchingWithOptions для обнаружения в первый раз запускает приложение:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) 
    { 
     // The app has already launched once 
    } 
    else 
    { 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
     // This is the first time the app is launched 
    } 
} 
+0

Прохладный, как я могу остановить приложение, запрашивающее доступ при запуске приложения? – Hassan

+0

@Hassan проверить мое обновление о том, как обнаружить при первом запуске приложения. В другой части вы можете написать код, чтобы не запрашивать доступ к контактам. – AJ112

+0

действительно помог мне! спасибо ребятам –

0

App с просьбой о разрешении при попытке retrive контактов.

Просто позвоните на восстановление после нажатия кнопки, а не после запуска.

+0

есть метод, который он нажимает, когда просят разрешения? – Hassan

Смежные вопросы