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)
}
}
}
시뮬레이터에서는 작동이 안되고, 실제 디바이스에서만 작동함!
'PROGRAMMING CODE > SWIFT' 카테고리의 다른 글
[SwiftUI] 커스텀모달 만들기 (NavigationBar shadow로 덮기) (1) | 2024.03.17 |
---|---|
[SwiftUI] CustomSheet (FullScreen + middle, bottom) 만들기! (0) | 2024.02.21 |
[SwiftUI] Drag&Drop (커스텀 뷰 기초, offset과 DragGesture) (0) | 2024.02.18 |
[Swift] KakaoMap 리사이징 공부 + 디바이스 화면잘림, black screen 버그 (삽질 일기) (1) | 2024.02.03 |
[SwiftUI] CoreLocation(사용자 위치정보)사용하기 + tuist (삽질 기록^.^) (0) | 2024.01.31 |