이 문서는 Kakao SDK for iOS(이하 iOS SDK)를 사용한 카카오내비 기능 구현 방법을 소개합니다.
카카오내비 API는 길 안내의 navigateUrl()
와 목적지 공유의 shareUrl()
두 가지 주요 기능을 제공합니다.
navigateUrl()
또는 shareUrl()
는 카카오내비 앱으로 목적지 공유 및 길 안내 기능을 실행하는 URL
을 반환합니다. 카카오내비 앱이 설치되어 있을 경우에는 앱을 호출하고, 그렇지 않을 경우에는 기본 브라우저로 설치 페이지를 엽니다.
카카오내비 앱 실행을 위해 Info.plist 파일에 URI Scheme 설정을 추가합니다. 다음과 같이 LSApplicationQueriesSchemes
에 'kakaonavi-sdk' 값을 추가합니다.
레퍼런스 | 앱 설정 |
---|---|
[SDK] navigateUrl() [SDK] NaviLocation [SDK] NaviOption |
설치 모듈 설정 초기화 앱 실행 허용 목록 설정 |
권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
---|---|---|---|
- | 플랫폼 등록 | - | - |
카카오내비를 실행하여 목적지까지의 길을 안내합니다.
iOS SDK 2.8.4부터 카카오내비 앱 미설치 시 웹에서 길 안내를 실행하는 기능을 더 이상 제공하지 않습니다. 카카오내비 앱이 설치돼 있지 않은 경우에는 설치 페이지로 이동합니다. 이전 버전에서 제공하는 웹 길 안내 기능 또한 추후 제공 종료될 예정이므로, 최신 버전 업데이트를 권장합니다.
길 안내는 사용자의 현재 위치로부터 지정한 목적지까지의 경로를 카카오내비로 안내하는 기능입니다. NaviApi
의 navigateUrl()
을 호출해 URL
을 반환 받아 열도록 구현합니다.
navigateUrl()
호출 시 목적지 정보를 담은 NaviLocation
, 검색 조건을 담은 NaviOption
객체를 전달해야 합니다. NaviOption
에는 원하는 검색 조건만 지정하여 요청할 수 있습니다. 자세한 정보는 레퍼런스를 참고합니다.
startX
, startY
, startAngle
파라미터를 사용해 경로 검색 시 참고할 출발 지점을 지정할 수 있습니다. 그러나 길 안내 시에는 사용자의 현재 위치로부터 목적지까지의 안내만을 제공하며, 별도의 출발 지점을 지정할 수는 없습니다.
let destination = NaviLocation(name: "카카오판교오피스", x: "321286", y: "533707")
let viaList = [NaviLocation(name: "판교역 1번출구", x: "321525", y: "532951")]
guard let navigateUrl = NaviApi.shared.navigateUrl(destination: destination, viaList: viaList) else {
return
}
if UIApplication.shared.canOpenURL(navigateUrl) {
UIApplication.shared.open(navigateUrl, options: [:], completionHandler: nil)
} else {
UIApplication.shared.open(NaviApi.webNaviInstallUrl, options: [:], completionHandler: nil)
}
경유지 목록 설정이 가능합니다. 각 경유지 정보를 NaviLocation
객체에 담고, 요청 시 viaList
파라미터로 경유지 NaviLocation
의 리스트(List)를 전달합니다.
레퍼런스 | 앱 설정 |
---|---|
[SDK] shareUrl() [SDK] NaviLocation [SDK] NaviOption |
설치 모듈 설정 초기화 앱 실행 허용 목록 설정 |
권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
---|---|---|---|
- | 플랫폼 등록 | - | - |
카카오내비를 실행하여 지정한 목적지 정보를 공유합니다.
목적지 공유하기는 카카오내비에서 지정한 목적지 정보를 공유할 수 있는 화면을 보여주는 기능입니다. NaviApi
의 shareUrl()
을 호출해 URL
을 반환 받아 열도록 구현합니다.
shareUrl()
호출 시 목적지 정보를 담은 NaviLocation
, 검색 조건을 담은 NaviOption
객체를 전달해야 합니다. NaviOption
에는 원하는 검색 조건만 지정하여 요청할 수 있습니다. 자세한 정보는 레퍼런스를 참고합니다.
startX
, startY
, startAngle
파라미터를 사용해 경로 검색 시 참고할 출발 지점을 지정할 수 있습니다. 그러나 길 안내 시에는 사용자의 현재 위치로부터 목적지까지의 안내만을 제공하며, 별도의 출발 지점을 지정할 수는 없습니다.
let destination = NaviLocation(name: "카카오판교오피스", x: "321286", y: "533707")
guard let shareUrl = NaviApi.shared.shareUrl(destination: destination) else {
return
}
if UIApplication.shared.canOpenURL(shareUrl) {
UIApplication.shared.open(shareUrl, options: [:], completionHandler: nil)
}
else {
UIApplication.shared.open(NaviApi.webNaviInstallUrl, options: [:], completionHandler: nil)
}
경유지 목록 설정이 가능합니다. 각 경유지 정보를 NaviLocation
객체에 담고, 요청 시 viaList
파라미터로 경유지 NaviLocation
의 리스트(List)를 전달합니다.