[英]xamarin ios screenshot and email
如何获取屏幕截图并通过按钮发送到电子邮件? 我已经做了截图的编码,但是会保存到相册中。
partial void btnScreenshot (NSObject sender)
{
UIImage image;
UIGraphics.BeginImageContext (View.Frame.Size);
//new iOS 7 method to snapshot
View.DrawViewHierarchy (View.Frame, true);
image = UIGraphics.GetImageFromCurrentImageContext ();
UIGraphics.EndImageContext ();
//...code to save to photo album omitted for brevity
image.SaveToPhotosAlbum((img, err) => {
if(err != null)
Console.WriteLine("error saving image: {0}", err);
else
Console.WriteLine ("image saved to photo album");
UIAlertView alert = new UIAlertView("Screenshot", "Image saved successfully", alertDelegate, "OK", null);
alert.Show();
alert.Show();
});
}
您可以使用此Xamarin教程获取有关撰写电子邮件的说明。
然后,要添加屏幕截图,您需要使用AddAttachmentData
方法。
// Take the screenshot
UIGraphics.BeginImageContext(View.Frame.Size);
View.DrawViewHierarchy(View.Frame, true);
UIImage image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
// Don't save it to the album (unless you need to)
// Create an email
var _mailController = new MFMailComposeViewController();
_mailController.SetToRecipients(new []{"john@doe.com"});
_mailController.SetSubject("Send Screenshot");
_mailController.SetMessageBody("This is a screenshot of the app!", false);
// Add the screenshot as an attachment
_mailController.AddAttachmentData(image.AsPNG(),"image/png","Screenshot.png");
// Handle the action to take when the user completes sending the email
_mailController.Finished += ( object s, MFComposeResultEventArgs args) => {
System.Console.WriteLine (args.Result.ToString ());
args.Controller.DismissViewController (true, null);
};
// Show the email view
PresentViewController (_mailController, true, null);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.