2010-04-22 18 views
0

J'ai une application pour iPhone qui permet aux utilisateurs d'envoyer un texte prédéterminé au format HTML.L'envoi d'un message HTML à partir d'une application iPhone s'arrête aux caractères spéciaux

Je vais avoir un problème en ce que si le texte contient des caractères spéciaux dans le texte (par exemple, esperluette &,>, <), la variable NSString que j'utilise pour envoyer le corps de l'email est tronqué à la spéciale personnage.

Je ne sais pas comment résoudre ce problème (j'ai essayé d'utiliser la méthode stringByAddingPercentEscapesUsingEncoding ... mais cela n'a pas résolu les problèmes). Réflexions sur ce que je fais de mal/comment y remédier?

est un exemple de code montrant ici ce que je suis en train de faire

Merci !!!

- (void)send_an_email:(id)sender { 
    NSString *subject_string = [NSString stringWithFormat:@"Summary of %@", commercial_name]; 
    NSString *body_string  = [NSString stringWithFormat:@"%@<br /><br />", [self.dl email_message]]; // email_message returns the body of text that should be shipped as html. If email_message contains special characters, the text truncates at the special character 
    NSString *full_string  = [NSString stringWithFormat:@"mailto:?to=&subject=%@&body=%@", [subject_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], [body_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    [[UIApplication sharedApplication] openURL:[[NSURL alloc] initWithString:full_string]]; 
} 
+0

Vous devez te encoder des caractères spéciaux en HTML correctement et = & par exemple> à >. Je ne connais pas Objective-C, donc je ne peux pas fournir de code, mais j'espère que cela vous oriente dans la bonne direction. Essayez http://stackoverflow.com/questions/803676/encode-nsstring-for-xml-html – anonymous

Répondre

0

Cela fonctionne pour moi d'envoyer un courriel à partir de l'application. La façon dont vous l'avez, il quitte l'application et ouvre Mail. Essayez quelque chose comme ceci:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
picker.mailComposeDelegate = self; 
... do your email setup code 
[picker setMessageBody:emailBody isHTML:YES]; 

Ici is a good tutorial

+0

cela a très bien fonctionné. J'ai toujours évité de faire cela simplement parce que j'étais trop paresseux et ne voulais pas apprendre quelque chose de nouveau, mais c'était incroyablement facile à mettre en œuvre. Je vous remercie! – user141146

+0

Bien sûr. J'ai reçu tellement d'aide de SO que je l'apprécie vraiment quand je peux aider quelqu'un et donner quelque chose au site. –