2013-10-12 32 views
12

Tüm yerel adres defteri kişilerini uygulamanıza aktarıyorum. Şu anda, uygulamanın başlatılmasında 'Kişilere erişime izin verme izni istemek' uyarısı görüntülenir.Kişiler iOS

Nasıl değiştiririm, uygulamanın başka bir yerinde izin istenir mi? Bir düğmenin tıklamasıyla, Instagram gibi? Sen belgelerine HERE okuyabilir

enter image description here

+0

[Programlı Olarak Kişilere Erişimi İste] seçeneğini işaretleyin (http://stackoverflow.com/questions/12648244/programmatically-request-access-to-contacts) –

+0

iOS 9 ve üstü: http://stackoverflow.com/a/ 39374916/569789 – Zaraki

cevap

22

:

bu resme bakın. Burada HERE ve HERE bulabilmesi görmek isteyebileceğini öğreticiler başka çift

//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 
    } 

: Burada

başlangıç ​​için bazı kodudur.

Bu yardımcı olur umarız!

GÜNCELLEME: için bunları uygulama başlattı ilk defa tespit etmek didFinishLaunchingWithOptions kullanmak zorunda: kişileri alınamadı çalıştığınızda

- (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

Güzel, uygulamanın başlatılması sırasında erişim isteyen uygulamayı nasıl durdurabilirim? – Hassan

+0

@Hassan, uygulamanızın ilk açılışını nasıl algılayacağımı güncellememi kontrol ediyor. Diğer kısımda, kişilerin erişimini istemediğiniz bir kod yazabilirsiniz. – AJ112

+0

gerçekten bana yardımcı oldu! teşekkürler –

0

App izin isteyen.

Düğmeye dokunduktan sonra yeniden başlatmayı çağırın.

+0

izin istendiğinde vurduğu bir yöntem var mı? – Hassan