2012-10-04 4 views
0

J'essaye d'envoyer via MFMailComposeViewController un schéma d'URL personnalisé afin que le destinataire puisse taper sur le lien incorporé et ouvrir mon application sur son iphone. Jusqu'à présent, le destinataire reçoit un e-mail, mais rien ne se passe quand il tape sur le lien. voici le code:iOs Schéma personnalisé dans MFMailComposeViewController

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
picker.mailComposeDelegate = self; // <- very important step if you want feedbacks on what the user did with your email sheet 
[picker setSubject:@"Incoming task"]; 
// Fill out the email body text 
NSString * types = @""; 
for(NSString *type in task.location_types){ 
    types = [types stringByAppendingFormat:@"%@|",type]; 
} 
if(types.length > 1){ 
    types = [types substringToIndex:types.length - 1]; 
} 
NSString *desc = [task.description stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *link = [NSString stringWithFormat:@"helpy://?taskid=%d&desc=%@&types=%@\"",task.TaskId,desc,types]; 
NSString *emailBody = [NSString stringWithFormat:@"<a href=\"#\" onclick=\"doSomething();\">TAP HERE</a><script type=\"text/javascript\" charset=\"utf-8\">function doSomething() { window.location = \"%@\;return false;}</script>",link]; 


[picker setMessageBody:emailBody isHTML:YES]; 

picker.navigationBar.barStyle = UIBarStyleBlack; 

[controller presentModalViewController:picker animated:YES]; 
[picker release]; 

helpy: // taskid = ..... est mon URL personnalisée enregistrée Scheme et si je le saisis dans la barre d'adresse du navigateur, il ouvre ma demande sur le? iPhone Pour une raison quelconque, lorsque ce lien est intégré dans un e-mail, il ne sert à rien de le tapoter. Toute aide? merci

Répondre

1

Je doute fortement que Mail va exécuter JavaScript sur iOS (même sur le bureau, je doute fortement, mais je ne l'ai pas encore essayé). Il suffit de définir l'URL en tant qu'attribut href de votre lien hypertexte et tout devrait bien fonctionner. Une raison pour laquelle vous voulez le faire avec JavaScript? Je suis juste curieux ;-)

NSString *link = [NSString stringWithFormat:@"helpy://?taskid=%d&desc=%@&types=%@\"",task.TaskId,desc,types]; 
NSString *emailBody = [NSString stringWithFormat:@"<a href=\"%@\">TAP HERE</a>", link]; 
+0

Merci, je me suis tourné vers javascript parce que simple a href ne fonctionne pas, enfin la solution apparemment pour régler via un lien URL (comme vous proposiez et j'ai essayé plus tôt) la seule chose est qu'il ne fonctionnera pas dans le simulateur pour une raison quelconque et fonctionne sur un appareil réel, c'est pourquoi je ne pouvais pas comprendre celui-ci, je le testais sur simulateur. –

Questions connexes