從iOS 6開始,應用程序無法在未經他們許可的情況下訪問用戶的聯繫人。當我們執行 - > Rho :: RhoContact.create! ,RhoMobile應用程序嘗試訪問用戶尚未提供的權限的地址簿。此外,該應用程序不會自行要求獲得許可。你需要在應用程序內強制觸發對許可的請求。
,你可以做到這一點,如下所示: -
前往羅德 - 3.4.3(我的羅德版本是3.4.2) - >平臺 - > iPhone - >類 - >電話簿 - > Phonebook.m
在文本編輯器或xCode中打開它。
在頁面的頂部,定義如下: -
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
一旦做到這一點,找到函數 - >
void* openPhonebook()
找到行 - >
memset(phonebook, 0, sizeof(LocalPhonebook));
低於此行取代所有代碼 - >
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) {
CFErrorRef myError = NULL;
phonebook->_ab = ABAddressBookCreateWithOptions(NULL, &myError);
ABAddressBookRequestAccessWithCompletion(phonebook->_ab, ^(bool granted, CFErrorRef error) {
if (granted) {
phonebook->_people = NULL;
phonebook->_len = 0;
} else {
// Handle the error
}
});
}
else{
// for iOS < 6
phonebook->_ab = ABAddressBookCreate();
if (phonebook->_ab) {
phonebook->_people = NULL;
phonebook->_len = 0;
}
}
return phonebook;
在上面的代碼
,電話簿 - > _ AB是我ABAddressBook參考
現在你應該是好去...希望這是有益的...