-1

WebView リンクをメールで送信する方法を知りたいです。次に、受信者が電子メールを受信すると、サファリでリンクを開くことができます。前もって感謝します!

この BOOL をデリゲートに入れました

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([[[request URL] scheme] isEqual:@"mailto"]) { 
    [[UIApplication sharedApplication] openURL:[request URL]]; return NO; 
} 
return YES; 
}

MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
[composer setMailComposeDelegate:self]; 
if ([MFMailComposeViewController canSendMail]) { 
    [composer setToRecipients:[NSArray arrayWithObjects:@"", nil]];
    [composer setSubject:@""]; 
    [composer setMessageBody:webview isHTML:YES]; 
    [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentModalViewController:composer animated:YES];
    [composer release];
}
4

2 に答える 2

1

リスティングで 2 つの異なることを行っています。

  • MFMailComposeViewControllerWebView のリンクをタップしたときに を表示したい場合mailto:は、コードの最初の部分 ( shouldStartLoadWithRequest) が機能するはずですが、次のように変更isEqualする必要がありisEqualToStringます。

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
      if ([[[request URL] scheme] isEqualToString:@"mailto"]) {  //Change in this line
          [[UIApplication sharedApplication] openURL:[request URL]]; return NO; 
      } 
      return YES; 
    }
    

    (これを使用すると、ユーザーはアプリを離れることに注意してください)

  • ユーザーがタップしたリンクを誰かに送信したい場合は、次のようなものを使用できます

    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    
    MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
    [composer setMailComposeDelegate:self]; 
    if ([MFMailComposeViewController canSendMail]) { 
        [composer setToRecipients:[NSArray arrayWithObjects:@"", nil]];
        [composer setSubject:@"Link"]; 
        [composer setMessageBody:request.URL isHTML:YES]; 
        [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
        [self presentModalViewController:composer animated:YES];
        [composer release];
    }
    
    return YES; 
    }
    
于 2012-09-30T10:18:32.073 に答える
0
 MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
        [composer setMailComposeDelegate:self];
        if ([MFMailComposeViewController canSendMail]) {
            [composer setToRecipients:[NSArray arrayWithObjects:@"", nil]];
            [composer setSubject:@""];
            [composer setMessageBody:webview.request.URL.absoluteString isHTML:YES];
            [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
            [self presentModalViewController:composer animated:YES];
            [composer release];
        }
        else
            [composer release];
    }
}
于 2012-10-04T23:12:08.493 に答える