2012-02-23 80 views
13

在iOS中,我如何閱讀存儲在iPhone中的所有者電子郵件地址?在我的應用程序中,我想讓用戶選擇他想要與自定義服務關聯的電子郵件地址。在Android上,我會讓他選擇他的GMail地址,但在iOS上,似乎沒有選項可以獲取蘋果ID電子郵件,對不對?那麼是否有可能檢索所有存儲的電子郵件地址並讓用戶選擇其中的一個?我真的需要一個電子郵件地址。一個獨特的ID,設備ID或類似的將無法與我想達到的。iOS:如何獲取所有者的電子郵件地址?

謝謝

回答

9

爲什麼不出示地址簿,讓用戶選擇和電子郵件地址?

將AddressBook和AddressBookUI框架添加到您的項目中。 將它們導入到.h中並添加協議ABPeoplePickerNavigationControllerDelegate。

然後調用ADRESS書:

- (void) chooseContact:(id)sender { 
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
    picker.peoplePickerDelegate = self; 
    [self presentModalViewController:picker animated:YES]; 
    [picker release]; 
} 

你實現幾個必要的委託方法來獲得一個電子郵件地址,並關閉通訊簿:

// call when the user cancel 
- (void) peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

讓用戶聯繫方式請輸入:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { 
    return YES; 
} 

然後做你所選擇的電子郵件地址你:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { 
    if (property == kABPersonEmailProperty) { 
     //assumed you have a property email in your class 
     self.email = (NSString *)ABRecordCopyValue(person, kABPersonEmailProperty); 
     [self dismissModalViewControllerAnimated:YES]; 
    } 
    return NO; 
} 
1

根據蘋果的指導方針,你將不得不問問用戶。另外,蘋果公司並不十分熱衷於使用私人信息,如電子郵件,強制性的。

您可以循環訪問地址簿並查找聯繫人中的所有者標記,但請注意,Apple將在即將到來的iOS版本中通知用戶某應用正在訪問地址簿,因此用戶可能不允許您的應用訪問地址簿。

1

nope您無法獲取電子郵件列表,我們用來通過我們的應用程序發送電子郵件的默認郵件應用程序只允許您檢查用戶是否可以發送電子郵件,不管它是否檢查是否已安裝一個郵件帳戶配置與否

相關問題