私は少し困っています。この問題に半日を費やしましたが、iOS6 でのすべての廃止やその他の問題の後、大きな結果はありませんでした。この iOS アプリには、ボタンを押した後、アプリが WebView のスクリーンショットを撮り、それをメールに添付して、そこからキャンセルするか、メールを送信してアプリに戻る通常のオプションがあるときに、メールを送信するオプションがあります。電子メールがポップアップする部分に到達しましたが、実際にはここで 2 つの問題があります。1 つは、キャンセルまたは送信のいずれかを押した後、電子メール ビューが閉じず、アプリが電子メール ビューで動かなくなることです。そして、私が抱えている2番目の問題は、添付される画像が単なる小さなアイコンであることです(認識されていない、または欠落しているように、青に疑問符が付いています...誰かが私を正しい方向に向けてもらえますか?私は夢中になる.私は' ネットを前後に調べましたが、うまくいきませんでした。残念ながら、多くの同様のスレッドがありますが、異なる問題は私の問題とは正確には関係ありません。申し訳ありませんが、事前に感謝します。これが私のコードです:
// in my LiveView.h file
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import <MessageUI/MessageUI.h>
#import "CamSetup.h"
@interface LiveView : UIViewController < MFMailComposeViewControllerDelegate , ADBannerViewDelegate >
....
-(IBAction)shotAndSend:(id)sender;
// in my LiveView.m file:
- (void)mailComposer:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
NSLog(@"in didFinishWithResult:");
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"cancelled");
break;
case MFMailComposeResultSaved:
NSLog(@"saved");
break;
case MFMailComposeResultSent:
NSLog(@"sent");
break;
case MFMailComposeResultFailed: {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error sending mail",@"Error sending mail")
message:[error localizedDescription] delegate:nil
cancelButtonTitle:NSLocalizedString(@"test",@"test")
otherButtonTitles:nil];
[alert show];
break;
}
default: break;
}
[self dismissViewControllerAnimated:NO completion:Nil];
}
-(IBAction)shotAndSend:(id)sender
{
UIGraphicsBeginImageContext(_myWebView.frame.size);
[_myWebView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * imageData = UIImageJPEGRepresentation (image, 2.1);
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController * mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
[mailComposer addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"attachment.jpeg"];
[mailComposer setSubject:@"A screenshot from my App"];
[mailComposer setToRecipients:[NSArray arrayWithObjects:@"123@yexample.com", nil]];
[self presentViewController: mailComposer animated:YES completion:NULL];
}
}