Ответ 1
Обновленный ответ
Поскольку вы не создаете собственное веб-приложение, вы не можете запрашивать доступ к контактам iCloud для пользователей. Это был бы кошмар безопасности, если бы веб-сайтам был разрешен доступ к данным пользователей. Существуют такие инструменты, как ShuttleCloud, которые предлагают API для миграции контактов пользователей. Это то, что Google использует для своей собственной службы Gmail.
Нет, вы не можете запрашивать прямой доступ к контактам через браузер, но есть инструменты для облегчения импорта.
Старый ответ
Вам нужно спросить разрешение iOS. Вы можете сделать это, просмотрев Apple documentation.
Пример
#import <AddressBookUI/AddressBookUI.h>
// Request authorization to Address Book
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
// First time access has been granted, add the contact
[self _addContactToAddressBook];
} else {
// User denied access
// Display an alert telling user the contact could not be added
}
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
// The user has previously given access, add the contact
[self _addContactToAddressBook];
}
else {
// The user has previously denied access
// Send an alert telling user to change privacy setting in settings app
}