Je souhaite que mon application utilise le MFMailComposeViewController
pour envoyer un e-mail de sorte que le destinataire puisse cliquer sur le url
intégré pour ouvrir le site Web correspondant. MFMailComposeViewController
ne semble pas le supporter explicitement. Des idées?MFMailComposeViewController: comment intégrer un lien URL cliquable dans le corps du message électronique
Répondre
:) 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.
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 YES
isHTML
.
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?
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!
Excellent! bon à savoir sur les sauts de ligne !, sauvez-moi un peu de temps l'homme acclame – MaKo
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:
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.
Avez-vous cliqué sur un e-mail reçu ou en mode d'édition? – AsifHabib