매일 공부 일기

(2022-11-15) 소소한 개발 일기

HJ39 2022. 11. 15. 16:29

-오늘 한일

 

# 컴퓨터 응용 설계 팀 프로젝트

1. 프로젝트에서 만든 앱에서 카카오 맵 앱을 실행해서 보여주기(실습)

어제 완벽했던(?) 이론에 이어 오늘은 실습!!

어제 찾았던 이론 그대로 따라 하기만 하면 돼서 어렵지 않을 것 같다.

 

실습 코드

let latitude = datalist[tourPlaceIndex].latitude ?? 0
let longitude = datalist[tourPlaceIndex].longitude ?? 0
    
let url = URL(string: "kakaomap://look?p=\(latitude),\(longitude)") //URL 지정
if UIApplication.shared.canOpenURL(URL(string: "kakaomap://")!){    //카카오맵 scheme 탐색 후 있는 경우 실행
	UIApplication.shared.open(url!, options: [:],completionHandler: nil)
}
else{
    print("can't open kakaomap")
}

 

그리고 Info.plist 파일에도 kakaomap을 추가시켜 주었다.

 

실행결과를 가져오고 싶지만...  시뮬레이터는 카카오 맵이 없어서 실행이 안되고 휴대폰으로 가져오는 방법을 모르겠다..;

아무튼 성공!

 

2. 제주 관광지 전화번호로 전화 걸기

전화거는 방법은 다른 방법이 있을 줄 알았는데 카카오맵 띄우는 방법이랑 똑같아서 당황했다;;

 

실습 코드

 let phoneNumber = datalist[tourPlaceIndex].phoneNumber ?? "000-0000-0000"
print(phoneNumber.components(separatedBy: ["-"]).joined())
guard let integerNumber = Int(phoneNumber.components(separatedBy: ["-"]).joined()) else{ return }

    let url = URL(string: "tel://\(integerNumber)") //URL 지정
	if UIApplication.shared.canOpenURL(URL(string: "tel://")!){    //전화 앱scheme 탐색 후 있는 경우 실행
    	UIApplication.shared.open(url!, options: [:],completionHandler: nil)
}
else{
    print("can't open tel")
}

URL을 이용해서 전화를 거는데 tel뒤쪽 integerNumber에는 정수 값이 들어가야 하는 것 같다.

관광지 전화번호는 string타입으로 되어 있어서 '-'를 제거해준 후 Int 타입으로 변형해 주었다 ㅎㅎ

 

실습하는 데 제일 중요한 것은 시뮬레이터로 실행이 되지 않고 iOS 기기가 있어야 한다!!