일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 앱 꺼졌을 때 푸시 데이터 저장
- 스위프트 앨범
- Swift flutterviewcontroller
- native flutter view
- swift 문자
- NotificationService Extension
- 푸시 데이터 저장
- Flutter UIKitView MethodChannel
- 노티피케이션 익스텐션
- 스위프트 푸시
- 스위프트 카메라
- 스위프트 테이블 뷰 셀
- swift autolayout
- flutter rotate
- 안드로이드 앨범
- 안드로이드 숏컷
- swift sms
- 안드로이드 FCM
- 스위프트
- 스위프트 웹뷰
- 앱 백그라운드 푸시 데이터 저장
- silent push
- 스위프트 UserDefaults
- flutter 회전
- 플러터 뷰 컨트롤러
- FlutterView MethodChannel
- Swift flutterview
- Flutter NativeView
- 안드로이드 바로가기
- 안드로이드 에러
- Today
- Total
Things take time
[SWIFT] SMS 문자 메시지 보내기 본문
[문자 보내기]
iOS의 경우에는 안드로이드처럼 위험 권한으로 분류하여 해당 작업에 대한 권한 요청 및 result를 처리하지 않고 문자 메시지를 보낼 수 있다.
단, 전송까지 하는 것이 아니라 전송 전의 화면까지를 보여줄 수 있다. 해당 번호는 String 배열 이므로, 다중 사용자에게 보내기에도 편리할 것이다.
공식 문서 : https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
해당 문서에 따르면 message 뷰 컨트롤러도 커스터마이징을 할 수 있다고 한다(UIAppearance 프로토콜을 이용하여)
[코드]
import UIKit import MessageUI class ViewController: UIViewController,MFMessageComposeViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() } @IBAction func btnClicked(_ sender: UIButton) { let messageComposer = MFMessageComposeViewController() messageComposer.messageComposeDelegate = self if MFMessageComposeViewController.canSendText(){ messageComposer.recipients = ["01012345678"] messageComposer.body = "text message" self.present(messageComposer, animated: true, completion: nil) } } func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { switch result { case MessageComposeResult.sent: print("전송 완료") break case MessageComposeResult.cancelled: print("취소") break case MessageComposeResult.failed: print("전송 실패") break } controller.dismiss(animated: true, completion: nil) } }
MessageUI를 import하고 Delegate 프로토콜을 얻는다.
그리고 필요할 때에만 클래스 변수를 사용하고, delegate를 할당한다.(중요)
만약 messageComposer를 클래스 전역 변수로 사용하게 되면, messageComposeViewController의 finish에서 제대로 dismiss가 되지 않아, 다시 버튼을 눌러도 제대로 메시지 뷰 컨트롤러가 열리지 않는 현상이 발생한다.
[결과]
'iOS (기능)' 카테고리의 다른 글
[iOS] Reject : Guideline 4.2.6 (0) | 2018.12.13 |
---|---|
[SWIFT] Static Cell을 사용하는 테이블 뷰의 커스터마이징(뷰 추가하기) (0) | 2018.06.19 |
[SWIFT] String <-> Float(CGFloat) 변환, Int -> Cgflaot (0) | 2018.05.17 |
[SWIFT] UILabel의 text 속성(여러 색상 넣기, 폰트 바꾸기 등) (0) | 2018.03.28 |
[SWIFT] UIImageView를 원 형(Circle) 만들기 (0) | 2018.02.26 |