risposta

16

:) Sì, si può fare questo:

MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
composer.mailComposeDelegate = self; 
[composer setSubject:subject]; 
[composer setMessageBody:message isHTML:YES];      

cui messaggio è solo un NSString con contenuti HTML. All'interno puoi aggiungere tutto l'HTML che desideri.

4

Usa setMessageBody:isHTML: e passare un collegamento HTML corretto nel corpo (<a href="your_url">your link text</a>) e passare al parametro YESisHTML.

4

hai provato sul tuo codice il tuo suggerimento? L'ho provato prima di arrivare a questo sito web e, mi spiace dirlo, non funziona affatto. Il collegamento appare davvero in blu, l'HTML viene letto come html, ma non è possibile alcun collegamento. Quando clicco sul link posso semplicemente modificarlo ....

Qualche suggerimento migliore?

+0

Hai fatto clic sull'e-mail ricevuta o in modalità di modifica? – AsifHabib

26

Ho cancellato la mia risposta precedente in quanto errata e irrilevante. Dopo che molti capelli mi hanno tirato I finalmente ho capito cosa stava succedendo nel mio caso ed è probabilmente quello che sta succedendo in questa domanda.

Quando si compone il corpo HTML per MFMailComposeViewController, è necessario impostare interruzioni di riga nell'HTML. Se una linea è lunga> 76 caratteri, il corpo sarà interpretato come segue:

Content-Type: text/html; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 

Se si mette interruzioni di riga in, il Content-Transfer-Encoding: quoted-printable non accadrà e tutto funziona come previsto. Supponendo che tu abbia un codice HTML corretto.

A titolo di esempio, costruire il corpo come segue:

NSMutableString *body = [NSMutableString string]; 
// add HTML before the link here with line breaks (\n) 
[body appendString:@"<h1>Hello User!</h1>\n"]; 
[body appendString:@"<a href=\"http://www.mysite.com/path/to/link\">Click Me!</a>\n"]; 
[body appendString:@"<div>Thanks much!</div>\n"]; 

Cheers!

+1

Eccellente! bello sapere le interruzioni di riga !, salvami un po 'di tempo l'uomo esulta – MaKo

7

Ho lo stesso problema.

Il mio link è HTML, posso vedere 'blu' ma se clicco, non apre safari mobile. Mi è permesso di modificare il testo.

In una classe ho questo:

-(id) init{ 
    self = [super init]; 
    if (self) { 
      if ([MFMailComposeViewController canSendMail]) { 
       self.mailComposeDelegate = self; 
       [self setSubject: @"Subject"]; 
       [self setMessageBody: @"<h2>Body</h2><a href='http://www.google.com'>link example</a>" isHTML: YES]; 
      } 
      else { 
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Mail Accounts" 
                   message:@"You don't have a Mail account configured, please configure to send email." 
                   delegate:nil 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles: nil]; 
       [alert show]; 
      } 
    } 
    return self; 
} 

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ 
    [controller dismissModalViewControllerAnimated: YES]; 
} 

Qui potete vedere la schermata iPad: iPad Screen shot

Se invio, e poi andare a "Sent" mailbox le opere di collegamento, quindi penso che il problema sia l'evento che apre i link.

Grazie.

+0

Hai finito con un clic? hai reindirizzato sul link se sì, per favore pubblica qui @Oceanicsix Grazie – Maul

+0

Ciao, è stato più di un anno fa, se sono onesto ora non riesco a ricordare come ho finito questo problema. Scusa e fortuna! – Mikel

Problemi correlati