From b97500ed1ef0f25336ecf7634c6580bda59a76df Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Thu, 9 Feb 2017 16:33:39 +0800 Subject: [PATCH] send email to contact developer --- .../AboutTableViewController.swift | 2 +- .../BasicStaticTableViewController.swift | 30 +++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pass/Controllers/AboutTableViewController.swift b/pass/Controllers/AboutTableViewController.swift index 5444f66..d9c52bb 100644 --- a/pass/Controllers/AboutTableViewController.swift +++ b/pass/Controllers/AboutTableViewController.swift @@ -14,7 +14,7 @@ class AboutTableViewController: BasicStaticTableViewController { tableData = [ // section 0 [[.type: CellDataType.link, .title: "Website", .link: "https://github.com/mssun/pass-ios.git"], - [.type: CellDataType.link, .title: "Contact Developer", .link: "https://mssun.me"],], + [.type: CellDataType.link, .title: "Contact Developer", .link: "mailto:bob@mssun.me&subject=passforiOS"],], // section 1, [[.type: CellDataType.segue, .title: "Open Source Components", .link: "showOpenSourceComponentsSegue"], diff --git a/pass/Controllers/BasicStaticTableViewController.swift b/pass/Controllers/BasicStaticTableViewController.swift index 93287d3..da85cfc 100644 --- a/pass/Controllers/BasicStaticTableViewController.swift +++ b/pass/Controllers/BasicStaticTableViewController.swift @@ -8,6 +8,8 @@ import UIKit import SafariServices +import MessageUI + enum CellDataType { case link, segue, empty @@ -17,7 +19,7 @@ enum CellDataKey { case type, title, link, footer, accessoryType, detailDisclosureAction, detailDisclosureData } -class BasicStaticTableViewController: UITableViewController { +class BasicStaticTableViewController: UITableViewController, MFMailComposeViewControllerDelegate { var tableData = [[Dictionary]]() var navigationItemTitle: String? @@ -67,10 +69,32 @@ class BasicStaticTableViewController: UITableViewController { performSegue(withIdentifier: link!, sender: self) case .link: let link = cellData[CellDataKey.link] as! String - let svc = SFSafariViewController(url: URL(string: link)!, entersReaderIfAvailable: false) - self.present(svc, animated: true, completion: nil) + let url = URL(string: link)! + switch url.scheme! { + case "mailto": + sendEmail(toRecipients: [URLComponents(string: link)?.path ?? ""]) + case "http", "https": + let svc = SFSafariViewController(url: URL(string: link)!, entersReaderIfAvailable: false) + self.present(svc, animated: true, completion: nil) + default: + break + } default: break } } + + func sendEmail(toRecipients recipients: [String]) { + let mailVC = MFMailComposeViewController() + mailVC.mailComposeDelegate = self + print(recipients) + mailVC.setToRecipients(recipients) + mailVC.setSubject("Subject for email") + mailVC.setMessageBody("Email message string", isHTML: false) + self.present(mailVC, animated: true, completion: nil) + } + + func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { + controller.dismiss(animated: true) + } }