본문 바로가기
iOS

[SwiftUI] 카카오맵 KakaoMap API URL Scheme (외부 앱 호출하기)

by 개발자 유영 2024. 6. 26.

 

 

어플을 만들다보면 '카카오맵으로 열기'와 같이 외부 어플로 연결해야 할 때가 있는데요

이 때 url scheme을 이용해 호출하는 법을 알아봅시다! 🙌

 

 

 


🔗 1. URL Scheme 이란? 

 iOS 운영체제에서 다른 어플을 열거나 해당 어플에서 지정된 작업을 수행하는 등 어플 간 통신을 할 수 있는 방법으로

특정 어플에 고유한 식별자 역할을 하는 프로토콜의 일종입니다.

 

구성요소는 이름, 특정 동작, 파라미터(선택적) 세가지로 볼 수 있습니다.

 

 

이름은 어플을 고유하게 식별하는 이름으로 보통 어플 이름이나 약어로 지정됩니다.

ex) kakaomap, kakaotalk

 

특정동작은 어플에서 수행할 동작을 나타내는 부분으로 어플마다 다르게 정의될 수 있습니다.

ex) look(위치 열기 동작), send(메시지 보내기 동작)

 

파라미터는 동작에 필요한 추가적인 정보를 포함할 수 있는 부분으로, 어플에 따라서, 수행할 동작에 따라서 다양하게 정의될 수 있습니다.

 

 

카카오 url scheme을 예로 들어 보겠습니다.

"kakaomap://open?layer=skyview"

-> 카카오맵을 실행하고 스카이뷰를 활성화하는 url scheme

 

"kakaomap://route?sp=37.53723,127.00551&ep=37.49795,127.027637&by=FOOT"

-> 카카오맵을 실행하고 출발지좌표부터 도착지좌표까지 도보 길찾기를 활성화하는 url scheme

 

 

 

🔗 2. URL Scheme 사용하기

1.  가져오기

호출하고 싶은 어플의 url scheme을 가져옵니다.

저는 카카오맵 url scheme을 사용하겠습니다. ->   카카오맵 URL Scheme

다양한 url scheme을 제공하고 있는데 저는 특정 위치의 맵을 불러오고 싶어 아래와 같은 url scheme을 사용해주도록 하겠습니다.

 

 

 

 

2. 등록하기

우선 xcode 프로젝트 설정에서 URL Scheme을 등록해주어야 합니다. Info.plist에 아래와 같이 추가해주세요.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>kakaomap</string>
</array>

 

 

 

3. 코드 작성하기

let url = URL(string: "kakaomap://look?p=37.556725,126.9234952")!
let appStoreURL = URL(string: "https://apps.apple.com/kr/app/%EC%B9%B4%EC%B9%B4%EC%98%A4%EB%A7%B5-%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-no-1-%EC%A7%80%EB%8F%84%EC%95%B1/id304608425")!
      
if UIApplication.shared.canOpenURL(url) {
	UIApplication.shared.open(url) // 카카오맵으로 이동
} else {
	UIApplication.shared.open(appStoreURL) // 카카오맵 미설치 시 앱스토어로 이동
}

 

카카오맵이 기기에 설치되어있으면 바로 실행이 되고, 기기에 설치가 안되어있으면 앱스토어로 이동하는 코드입니다. 

 

 

 

🔗 3.  어플 설치가 되어있는데도 앱스토어로 넘어간다면? 

 위처럼 info.plist에 등록도 해주고, 코드도 맞게 작성했고, 카카오맵이 기기에 설치가 되어있음에도 불구하고 자꾸 앱스토어로 이동한다면? 아래와 같이 추가적으로 설정해줬을 때 정상적으로 작동되었습니다!

 

프로젝트 설정 페이지 > 타겟 > Info > 하단의 URL Types에 새 항목을 추가하면 아래와 같이 나옵니다. 

'Identifier' 필드에 고유한 식별자, 'URL Schemes' 필드에 kakaomap을 입력해주고 다시 빌드해주시면 됩니다!

 

 

 

 

 

 

 


🌟 참고

https://apis.map.kakao.com/ios_v2/docs/getting-started/urlscheme/

https://guide.ncloud-docs.com/docs/maps-url-scheme

'iOS' 카테고리의 다른 글

[SwiftUI] 카카오맵 API 사용하기(KakaoMapsSDK v.2)  (0) 2024.06.29