/ / Mock o MFMailComposeViewController no simulador iOS. Só precisa exibir o compositor - ios, object-c, mfmailcomposeviewcontroller

Mock o MFMailComposeViewController no simulador iOS. Só precisa exibir o compositor - ios, object-c, mfmailcomposeviewcontroller

Eu só preciso exibir o compositor de e-mail no meu simulador iOS (Não há necessidade de enviar o e-mail real).

Assim que eu estiver inicializando MFMailComposeViewController Estou recebendo alerta pop-up dizendo que a conta de e-mail não está configurada.

Isso é o que estou fazendo.

MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init];

Esta linha aparece no controlador de alerta.

Respostas:

1 para resposta № 1

Para simulador, a configuração de e-mail não está disponível.

Use o código abaixo para enviar email.

- (void)openEmail
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mail =
[[MFMailComposeViewController alloc] init];
mail.mailComposeDelegate = self;
[mail setSubject:@"Subject"];
[mail setMessageBody:@"body message" isHTML:NO];
[mail setToRecipients:@[@"email1@example.com",@"email2@example.com"]];
/// if attachment then implement below line
//[mail addAttachmentData:<#(nonnull NSData *)#> mimeType:<#(nonnull NSString *)#> fileName:<#(nonnull NSString *)#>]
[self presentViewController:mail animated:YES completion:NULL];
}
else {
NSLog(@"Please configure your email. Settings->Accounts & Passwords->Add Account");
}
}

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(nullable NSError *)error
{
switch (result) {
case MFMailComposeResultSent:
NSLog(@"Sent");
break;
default:
break;
}
}