[swift] 연락처(Contacts) 정보를 이용한 앱 내 전화 걸기 및 문자 보내는 기능 구현

모바일 앱을 개발하다보면 연락처 정보를 활용하여 전화 걸기 또는 문자 보내기와 같은 기능을 구현해야 할 때가 있습니다. 이번 포스트에서는 Swift를 사용하여 iOS 앱 내에서 연락처 정보를 활용하여 전화 걸기와 문자 보내기 기능을 구현하는 방법을 알아보겠습니다.

연락처 접근 권한 요청하기

우선, 연락처 정보에 액세스하기 위해 앱이 필요한 권한을 요청해야 합니다. Info.plist 파일에 NSContactsUsageDescription 키를 추가하고 해당 권한이 필요한 이유를 설명하는 메시지를 값으로 설정합니다.

<key>NSContactsUsageDescription</key>
<string>연락처 정보를 사용하여 전화 걸기  메시지 보내기에 접근합니다.</string>

전화 걸기 기능 구현하기

연락처 정보를 가져오고 해당 정보를 사용하여 전화를 걸기 위해서는 ContactsContactsUI 프레임워크를 import 해야 합니다.

import Contacts
import ContactsUI

다음으로, 전화 걸기 기능을 구현합니다. 아래의 예시 코드는 연락처 정보를 사용하여 전화를 거는 방법을 보여줍니다.

func callContact(contactNumber: String) {
    if let phoneCallURL = URL(string: "tel://\(contactNumber)") {
        let application = UIApplication.shared
        if application.canOpenURL(phoneCallURL) {
            application.open(phoneCallURL, options: [:], completionHandler: nil)
        }
    }
}

문자 보내기 기능 구현하기

문자 보내기 기능을 구현하기 위해서는 MessageUI 프레임워크를 import 해야 합니다.

import MessageUI

다음으로, 문자 보내기 기능을 구현합니다. 아래의 예시 코드는 연락처 정보를 사용하여 문자를 보내는 방법을 보여줍니다.

func sendMessage(to contactNumber: String) {
    if MFMessageComposeViewController.canSendText() {
        let messageComposeVC = MFMessageComposeViewController()
        messageComposeVC.recipients = [contactNumber]
        messageComposeVC.messageComposeDelegate = self
        present(messageComposeVC, animated: true, completion: nil)
    } else {
        // Handle message sending failure
    }
}

결론

이제, 연락처 정보를 활용하여 앱 내에서 전화 걸기와 문자 보내기 기능을 구현하는 방법을 알게 되었습니다. 사용자의 연락처 정보를 활용하여 더 많은 기능을 구현할 수 있고, 이를 통해 앱의 활용도를 높일 수 있습니다.

참고문헌: