2009-03-08 4 views
0

Ich möchte einen Link in einem UIWebView erstellen, der Inhalt an den Benutzer sendet. Ein einfaches Beispiel ist:So entziehen Sie Zeichen in href = mailto (iPhone)

<a href="mailto:[email protected]?subject=Sarcasm&body=I » 
<b>love</b> &lt;html&gt; mail!">Hi!</a> 

die eine Nachricht erstellt, die wie folgt aussieht:

- beginnen Nachricht ---

An: [email protected] Betreff: Sarkasmus

Ich liebe Mail!

- Ende Nachricht -

Ich brauche etwas aufwendiger. Das Thema enthält mehrere Wörter mit Leerzeichen. Der Text enthält HTML, Liste (<ul>) und Hyperlinks mit Anführungszeichen in ihrer href. Wie erstelle ich so etwas?

Hier ist ein Beispiel:

subject = "Dies ist nur ein Test"

Körper = „Dies ist der Körperteil Hier ist eine Liste von Links ist.
<ul>
<li> < a href = "http://www.abc.com"> abc.com </a > </li >
<li> < a href = "http://www.xyz.com"> xyz.com </a > </li >
</ul >
Das Ende.“

Warum macht der Simulator auch etwas, wenn er auf einen Mailto-Link klickt?

Antwort

2

Der Simulator verfügt nicht über Mail.app, wie Sie auf dem Startbildschirm sehen können. Es hat also nichts zu öffnen, wenn es auf einen Mailto-Link stößt.

Soweit ich weiß, gibt es keine Möglichkeit, mailto: um eine HTML-formatierte E-Mail zu senden.

+0

Laden Sie die Fortune Cookie App herunter, sie tun es. – Garrett

+0

Ich habe das in den Beispiel-Apps nicht gesehen. Wo finde ich es? – 4thSpace

+0

Dies funktioniert: http://davidebenini.it/2008/12/19/iphone-sdk-sending-formatted-email/ – 4thSpace

1

Sie müssen die MessageUI.framework Referenz auf Ihr Projekt.

folgendes zu Ihrer .h-Datei

#import <MessageUI/MessageUI.h> 
#import <MessageUI/MFMailComposeViewController.h> 

den Delegaten hinzufügen <MFMailComposeViewControllerDelegate>

erstellen ein paar Methoden ähnlich in .m-Datei in den folgenden.

-(IBAction)checkCanSendMail:(id)sender{ 
     Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); 
     if (mailClass != nil) { 
      if ([mailClass canSendMail]) { 
       [self displayComposerSheet]; 
      } 
      else { 
       //Display alert for not compatible. Need iPhone OS 3.0 or greater. Or implement alternative method of sending email. 
      } 
     } 
     else { 
      //Display alert for not compatible. Need iPhone OS 3.0 or greater. Or implement alternative method of sending email. 
     } 
    } 

    -(void)displayComposerSheet { 
     MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
     mailer.mailComposeDelegate = self; 

     [mailer setSubject:@"Email Subject"]; 

     //Set our to address, cc and bcc 
     NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
     //NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]",@"[email protected]",nil]; 
     //NSArray *bccRecipients = [NSArray arrayWithObjects:@"[email protected]",@"[email protected]",nil]; 

     [mailer setToRecipients:toRecipients]; 
     //[mailer setCcRecipients:ccRecipients]; 
     //[mailer setBccRecipients:bccRecipients]; 

     NSString *emailBody = @"\ 
     <html><head>\ 
     </head><body>\ 
     This is some HTML text\ 
     </body></html>"; 

     [mailer setMessageBody:emailBody isHTML:YES]; 

     [self presentModalViewController:mailer animated:YES]; 
     [mailer release]; 
     } 

Apple-Beispielcode mit mehr Anweisungen unter: http://developer.apple.com/iphone/library/samplecode/MailComposer/

Ich weiß, dass dies nicht die webView nicht verwendet, aber es ermöglicht es Ihnen, HTML-E-Mails aus Ihrer Anwendung zu erstellen.