Répondre

16

:) Oui, vous pouvez le faire:

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

où un message est juste un NSString avec un contenu HTML. A l'intérieur, vous pouvez ajouter tout le HTML que vous voulez.

4

utilisation setMessageBody:isHTML: et passer un lien HTML approprié dans le corps (<a href="your_url">your link text</a>) et passer au paramètre YESisHTML.

4

avez-vous essayé sur votre code votre suggestion? J'ai essayé avant d'arriver sur ce site, et désolé de le dire, ça ne marche pas du tout. Le lien apparaît vraiment en bleu, le HTML est lu en html, mais aucun lien n'est possible. Quand je clique sur le lien je peux juste l'éditer ....

Une meilleure suggestion?

+0

Avez-vous cliqué sur un e-mail reçu ou en mode d'édition? – AsifHabib

26

J'ai supprimé ma réponse précédente car elle était incorrecte et non pertinente. Après beaucoup de cheveux tirant, j'ai finalement compris ce qui se passait dans mon cas et est probablement ce qui se passe dans cette question. Lorsque vous composez le corps HTML du MFMailComposeViewController, doit insérer des sauts de ligne dans le code HTML. Si une ligne est> 76 caractères de long, le corps sera interprété comme suit:

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

Si vous mettez les sauts de ligne dans le Content-Transfer-Encoding: quoted-printable ne se produira pas et tout fonctionne comme prévu. En supposant que vous avez le bon HTML.

À titre d'exemple, construire le corps comme suit:

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

Excellent! bon à savoir sur les sauts de ligne !, sauvez-moi un peu de temps l'homme acclame – MaKo

7

J'ai le même problème.

Mon lien est HTML, je peux voir «bleu» mais si je clique dessus, n'ouvre pas safari mobile. Est autorisé à moi d'éditer le texte.

Dans une classe, j'ai ceci:

-(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]; 
} 

Ici vous pouvez voir la capture d'écran iPad: iPad Screen shot

Si je vous envoie, puis-je aller à « envoyés » boîte aux lettres les travaux de liaison, donc je pense que le problème est l'événement qui ouvre les liens.

Merci.

+0

Avez-vous fini avec le clic? avez-vous rediriger sur le lien si oui alors s'il vous plaît envoyer ici @Oceanicsix Merci – Maul

+0

Salut, il y a plus d'un an, si je suis honnête maintenant, je ne me souviens pas comment j'ai fini ce numéro. Désolé et bonne chance! – Mikel

Questions connexes