본문 바로가기
PROGRAMMING CODE/SWIFT

[SwiftUI] 버튼 눌러 전화걸기

by daye_ 2024. 2. 18.

 

tel:// 번호 형식으로 넣어줘야한다.

let phoneNumber = "tel://123456789"

 

 func makePhoneCall() {
        if let phoneURL = URL(string: phoneNumber), UIApplication.shared.canOpenURL(phoneURL) {
            UIApplication.shared.open(phoneURL, options: [:], completionHandler: nil)
        }
  }

 

버튼 눌렀을때 이 함수를 넣어주면 끝!

 

개인적으로 데이터 저장할 때 tel://을 넣기 힘드니까

 let phoneNumber = "123456789"
 
 func makePhoneCall() {
        if let phoneURL = URL(string: "tel://\(phoneNumber)"), UIApplication.shared.canOpenURL(phoneURL) {
            UIApplication.shared.open(phoneURL, options: [:], completionHandler: nil)
        }
  }

이렇게 사용하면 더 깔끔할것이라고 생각한다!

 

 

 

전체 코드

import SwiftUI

struct ContentView: View {
    let phoneNumber = "123456789"
    var body: some View {
        VStack {
            CallButton
                .onTapGesture {
                    makePhoneCall()
                }
        }
    }
    private var CallButton: some View {
        Image(systemName: "phone.fill")
             .resizable()
             .frame(width: 50, height: 50)
             .foregroundStyle(Color.gray)
    }
    func makePhoneCall() {
           if let phoneURL = URL(string: "tel://\(phoneNumber)"), UIApplication.shared.canOpenURL(phoneURL) {
               UIApplication.shared.open(phoneURL, options: [:], completionHandler: nil)
           }
     }
}

 

시뮬레이터에서는 작동이 안되고, 실제 디바이스에서만 작동함!