티스토리 뷰
프로젝트에 메일이나 메시지를 보내는 방법을 소개드리려 합니다.
사용할 프레임워크는 MessageUI프레임워크입니다.
유저가 앱을 떠나지 않고 메시지를 편집하고 보낼 수 있도록 이메일 및 문자 메시지를 작성하기 위한 유저 인터페이스를 만드는 것입니다.
MessageUI프레임워크는 이메일 및 SMS 문자 메시지에 대한 표준 작성 인터페이스를 제공하기 위한 특수한 뷰 컨트롤러를 제공합니다.
사용자가 앱을 떠자이 않아도 이러한 인터페이스를 이용해야 메시지 전달 기능을 추가할 수 있습니다.
(메시지를 보낼 수 없으면 해당 뷰 컨트롤러를 표시하면 안 됩니다.)
그리고 메일이나 메시지를 보낼 수 있다고 했잖아요😆
여기 토픽에 보시면 Email Composition Interface, Message Composition Interface로 구성되어 있습니다.
원하는 것 선택하셔서 사용하면 될 것 같습니다.
저는 메일을 보내는 기능을 구현하기 위해...
MFMailComposeViewController를 활용해볼 거예요.
아래와 같이 '이메일 보내기' 버튼을 누르면 이메일을 뜰 수 있도록 뷰 컨트롤러에 버튼 하나를 올려볼게요.
(메일 보내기도 아니고 이메일 보내기라... 뭔가 어색한 느낌이 드네요😅)
그리고 이벤트를 처리하기 위해 버튼을 뷰컨에 연결시켜줍니다.
IBAction안에는 아래와 같이 작성해주세요.
@IBAction func emailButtonClicked(_ sender: UIButton) {
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["hyer1k@naver.com"])
mail.setMessageBody("<p>안녕하세요</p>", isHTML: true)
present(mail, animated: true)
} else {
print("실패했습니다.")
}
}
먼저 if문으로 MFMailComposeViewController가 사용할 수 있는지 확인해줘야 합니다.
애플 공식문서에 메시지를 보낼 수 없으면 해당 뷰 컨트롤러를 표시하지 말라네요.
만약에 사용할 수 있다면 MFMailComposeViewController클래스 인스턴스 mail을 만들어줍니다.
mail에 델리게이트를 설정해주고, 저는 수신자 그리고 메시지의 바디까지 작성해줄게요.
그리고 뷰를 뛰워줍니다.
즉 버튼이 눌리면 차례로 일어납니다.
1) MFMailComposeViewController가 사용할 수 있는지 확인
2) MFMailComposeViewController클래스 인스턴스 생성
3) 델리게이트 설정
4) 원하는 구성 작성
5) 뷰컨 띄우기
저는 수신자와 메시지 바디만 구성했는데 아래와 같이 다른 구성도 추가 가능하니 공식문서를 확인해주세요.
그리고 뷰 컨트롤러를 사라지는 함수도 만들어 줍니다.
extension ViewController: MFMailComposeViewControllerDelegate {
func mailComposeController(_ controller: MFMailComposeViewController,
didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true)
}
}
여기까지 작성하고 실행을 해볼게요.
실행시켜서 이메일 보내기를 아무리 눌려도 어떠한 뷰 컨트롤러가 뜨지 않아요.
콘솔 창을 확인해보니,,, 실패했습니다 투성이.
실패했습니다.
실패했습니다.
실패했습니다.
실패했습니다.
실패했습니다.
메일이 연결되지 않은 시뮬레이터로 해서 그런 거예요.
메일이 연결되어 있는 실 기기로 다시 연결해줍니다.
코드로 설정해놨던 받는 사람 hyer1k@naver.com이 잘 보이네요.
그리고 메시지의 바디로 안녕하세요. 또한 잘 보입니다.
여기까지 MessageUI 프레임워크를 사용해보았습니다.
전체적인 코드는 아래와 같으니 참고해주세요.
https://developer.apple.com/documentation/messageui
MessageUI | Apple Developer Documentation
A standard view controller, whose interface lets the user manage, edit, and send email messages.
developer.apple.com
https://developer.apple.com/documentation/messageui/mfmailcomposeviewcontroller
MFMailComposeViewController - MessageUI | Apple Developer Documentation
Class MFMailComposeViewController A standard view controller, whose interface lets the user manage, edit, and send email messages. DeclarationOverviewUse this view controller to display a standard email interface inside your app. Before presenting the inte
developer.apple.com
'Tech > iOS' 카테고리의 다른 글
Equatable 프로토콜 (0) | 2020.05.03 |
---|---|
커스텀 로딩 뷰 만들기 (2) | 2020.04.26 |
아이폰 및 아이패드 버전별 사용량 확인하기 (0) | 2020.04.07 |
OCR 사용해보기 (0) | 2020.04.07 |
기기없이 빌드 아카이브 생성하기 (0) | 2020.03.19 |
- Total
- Today
- Yesterday
- Deep learning
- 책 후기
- objc
- wwdc
- objective-c
- SWIFT
- 머신러닝
- 책
- rxswift
- 독서
- Algorithm
- 문자열
- stanford SwiftUI
- ARC
- ios
- 스위프트UI
- RX
- 알고리즘
- Xcode
- ReactiveX
- 스위프트
- iOS SwiftUI
- leetcode
- 딥러닝
- swiftUI
- Animation
- 책 추천
- 애니메이션
- swift5
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |