/// <summary> /// Shows the native MFMailComposeViewController to send an email. /// Raises MailCompleted event when completed.</summary> /// /// <param name="recipients"> An array of strings representing the email addresses of the recipients.</param> /// <param name="subject"> The subject of the email.</param> /// <param name="body"> The body of the email.</param> /// <param name="bodyIsHTML"> True if the body is HTML; false otherwise.</param> /// <param name="image"> The image to attach to the email.</param> /// <param name="checkServiceAvailable"> Whether to check if the service is available first.</param> /// <returns> True if it is able to show the native view controller; false if it cannot send email.</returns> public static bool Mail(string[] recipients, string subject, string body, bool bodyIsHTML, UIImage image, bool checkServiceAvailable) { if (checkServiceAvailable && !MFMailComposeViewController.CanSendMail()) { return(false); } var vc = new MFMailComposeViewController(); if (vc.IsNil) { return(false); } vc.mailComposeDelegate = MailComposeViewControllerDelegate.instance; vc.SetToRecipients(recipients); vc.SetSubject(subject); vc.SetMessageBody(body, bodyIsHTML); if (image != null) { var nsdata = image.PNGRepresentation(); vc.AddAttachmentData(nsdata, "image/png", "image.png"); } UIApplication.deviceRootViewController.PresentViewController(vc, true, null); return(true); }
/// <summary> /// Shows the native MFMailComposeViewController to send an email. /// Raises MailCompleted event when completed.</summary> /// /// <param name="recipients"> An array of strings representing the email addresses of the recipients.</param> /// <param name="subject"> The subject of the email.</param> /// <param name="body"> The body of the email.</param> /// <param name="bodyIsHTML"> True if the body is HTML; false otherwise.</param> /// <param name="image"> The image to attach to the email.</param> /// <param name="checkServiceAvailable"> Whether to check if the service is available first.</param> /// <returns> True if it is able to show the native view controller; false if it cannot send email.</returns> public static bool Mail(string[] recipients, string subject, string body, bool bodyIsHTML, UIImage image, bool checkServiceAvailable) { if (checkServiceAvailable && !MFMailComposeViewController.CanSendMail()) return false; var vc = new MFMailComposeViewController(); if (vc.IsNil) return false; vc.mailComposeDelegate = MailComposeViewControllerDelegate.instance; vc.SetToRecipients(recipients); vc.SetSubject(subject); vc.SetMessageBody(body, bodyIsHTML); if (image != null) { var nsdata = image.PNGRepresentation(); vc.AddAttachmentData(nsdata, "image/png", "image.png"); } UIApplication.deviceRootViewController.PresentViewController(vc, true, null); return true; }
/// <summary> /// Exports an UIImage in PNG format to Photos album. /// Raises ExportCompleted or ExportFailed events on completion. /// </summary> /// <param name="image">Image.</param> public static void ExportPNG(UIImage image) { NSData data = image.PNGRepresentation(); assetsLibrary.WriteImageDataToSavedPhotosAlbum(data, new Dictionary <object, object>(), _OnWriteCompletion); }
/// <summary> /// Exports an UIImage in PNG format to Photos album. /// Raises ExportCompleted or ExportFailed events on completion. /// </summary> /// <param name="image">Image.</param> public static void ExportPNG(UIImage image) { NSData data = image.PNGRepresentation(); assetsLibrary.WriteImageDataToSavedPhotosAlbum(data, new Dictionary<object, object>(), _OnWriteCompletion); }