2011-05-05 70 views
0

我需要知道是否有任何方法可以檢查用戶是否在郵件應用程序中提供了一個ID,以便在調用MFMailComposeViewController之前通知用戶您未登錄或者您有在郵件應用程序中沒有給出電子郵件ID。檢查用戶是否登錄郵件應用程序

回答

1
canSendMail 

返回一個布爾值,表示當前設備是否 能夠發送電子郵件 。

+ (BOOL)canSendMail 

返回值

YES,如果設備被配置爲 發送電子郵件或者,如果它不是NO。 討論

你應該在 試圖顯示郵件 構圖界面之前調用此方法。如果返回 否,則不得顯示郵件 構圖界面。

if([MFMailComposeViewController canSendMail]) 
{ 
//do something 
} 
else 
{ 
// cannot send mail 
} 
+0

+1奎克響應 – 2011-05-05 06:19:29

+0

我們可以從他的登錄 – 2011-05-05 06:21:44

+0

的API不公開公開該信息(可能是很好的理由電子郵件ID ,例如阻止開發者收穫iPhone用戶的電子郵件地址)。 您可能應該詢問用戶的電子郵件地址,然後將其保存以供將來使用。 – visakh7 2011-05-05 06:23:23

1


您可以通過檢查下面的代碼

Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); 
if (mailClass != nil) 
{ 
    // We must always check whether the current device is configured for sending emails 
    if ([mailClass canSendMail]) 
    { 
     [self displayComposerSheet]; 
    } 
    else 
    { 
     UIAlertView *objAlert=[[UIAlertView alloc]initWithTitle:@"No Mail Account" message:@"Please create an account first for sending mail." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [objAlert show]; 
     [objAlert release]; 
    } 
} 
else 
{ 
    UIAlertView *objAlert=[[UIAlertView alloc]initWithTitle:@"No Mail Account" message:@"Please create an account first for sending mail." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [objAlert show]; 
    [objAlert release]; 
} 
+0

+1快速response.and也很好的答案 – 2011-05-05 06:20:49