지도 앱 연동 URL Scheme
    • PDF

    지도 앱 연동 URL Scheme

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    네이버 지도 앱 URL Scheme을 사용하여 사용자 앱이나 웹 페이지에서 네이버 지도 앱 호출함으로써 네이버 지도 기능을 사용할 수 있습니다.

    구문

    네이버 지도 앱 URL Scheme은 nmap://으로 시작하며, 구문의 형식은 다음과 같습니다.

    naverapp-urlscheme-syntax_ko

    구성 요소설명필수 여부
    nmap://네이버 지도 앱 접근 URL Scheme필수
    actionPath호출 액션필수
    parameter=value호출 액션에 따른 입력 파라미터와 입력 값액션에 따라 다름. 자세한 내용은 URL Scheme 사용 확인
    appnameURL Scheme을 사용하는 앱 또는 웹 페이지를 식별하는 문자열
    • Android 앱: 앱의 applicationId
    • iOS 앱: 앱의 번들 ID
    • 모바일 웹: 웹 페이지 URL
    필수. 모든 URL에는 appname 파라미터가 반드시 포함되어야 함

    사전 설정

    네이버 지도 URL Scheme은 사용자의 기기에 네이버 지도 앱이 설치되어 있어야만 사용 가능합니다. 따라서 네이버 지도 앱이 설치되어 있지 않을 경우, App Store나 Google Play에서 네이버 지도 앱을 설치할 수 있도록 코드를 작성해야 합니다. 사용 환경별(모바일 앱, 모바일 웹, 인앱 브라우저) 작성해야 하는 코드는 다음과 같습니다.

    모바일 앱

    네이버 지도 URL Scheme을 사용하기 위해 모바일 앱에서 작성해야 하는 코드는 다음과 같습니다.

    Android

    다음 예제 코드와 같이 queryIntentActivities를 호출해 네이버 지도 앱이 설치되어 있는지 확인하고, 설치되어 있지 않으면 Google Play로 이동합니다.

    String url = "nmap://actionPath?parameter=value&appname={YOUR_APP_NAME}";
    
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    
    List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    if (list == null || list.isEmpty()) {
        context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.nhn.android.nmap")));
    } else {
        context.startActivity(intent);
    }
    

    iOS

    iOS 모바일 앱에서 작성해야 할 코드는 다음과 같습니다.

    1. info.plist에 LSApplicationQueriesSchemes를 생성하고 nmap을 추가해 주십시오.
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>nmap</string>
    </array>
    
    1. 다음과 같이 canOpenURL을 호출해 네이버 지도 앱이 설치되어 있는지 확인하고, 설치되어 있지 않으면 App Store로 이동해 주십시오.
    let url = URL(string: "nmap://actionPath?parameter=value&appname={YOUR_APP_NAME}")!
    let appStoreURL = URL(string: "http://itunes.apple.com/app/id311867728?mt=8")!
    
    if UIApplication.shared.canOpenURL(url) {
      UIApplication.shared.open(url)
    } else {
      UIApplication.shared.open(appStoreURL)
    }
    

    모바일 웹

    모바일 웹에서 네이버 지도 URL Scheme을 사용하려면 네이버 지도 앱을 설치하도록 구현해야 합니다.

    Android

    인텐트 URL을 사용하면 앱이 설치되어 있지 않은 경우 자동으로 Google Play 스토어로 이동합니다. 인텐트 URL의 구조는 다음과 같습니다.

    intent://actionPath?parameter=value&appname={YOUR_APP_NAME}#Intent;scheme=nmap;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.nhn.android.nmap;end
    

    다음은 (37.4979502, 127.0276368) 위치에 '경기도 성남시 분당구 정자동' 마커를 표시하는 URL Scheme을 인텐트 URL로 나타낸 예제입니다.

    intent://place?lat=37.4979502&lng=127.0276368&name=%EA%B2%BD%EA%B8%B0%EB%8F%84%20%EC%84%B1%EB%82%A8%EC%8B%9C%20%EB%B6%84%EB%8B%B9%EA%B5%AC%20%EC%A0%95%EC%9E%90%EB%8F%99&appname=com.example.myapp#Intent;scheme=nmap;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.nhn.android.nmap;end
    

    iOS

    다음과 같이 웹 페이지에서 JavaScript 타이머를 이용해 App Store로 분기시키는 방법을 사용합니다.

    <script>
    function openNaverMapApp(url) {
        var clickedAt = +new Date();
    
        location.href = url;
    
        setTimeout(function() {
            if (+new Date() - clickedAt < 2000) {
                location.href = 'http://itunes.apple.com/app/id311867728?mt=8';
            }
        }, 1500);
    }
    
    window.onload = function() {
        openNaverMapApp("nmap://actionPath?parameter=value&appname={YOUR_APP_NAME}");
    };
    </script>
    

    인앱 브라우저

    인앱 브라우저에서 URL Scheme을 사용하려면 다음과 같이 URL Scheme 처리 코드를 추가해야 합니다.

    Android

    다음과 같이 WebViewClientshouldOverrideUrlLoading을 오버라이드 하여 URL Scheme 처리 코드를 추가합니다.

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("intent:")) {
            Intent intent;
            try {
                intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
            } catch (URISyntaxException e) {
                return false;
            }
            if (TextUtils.isEmpty(intent.getPackage())) {
                return false;
            }
            List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
            if (list == null || list.isEmpty()) {
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + intent.getPackage())));
            } else {
                startActivity(intent);
            }
            return true;
        }
    
        return false;
    }
    

    iOS

    다음과 같이 WKWebviewdecidePolicyFor에 URL Scheme 처리 코드를 추가합니다.

    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        if let url = navigationAction.request.url {
            if url.scheme == "nmap" {
                UIApplication.shared.open(url)
                decisionHandler(.cancel)
                return
            }
        }
        decisionHandler(.allow)
    }
    

    URL Scheme 사용

    네이버 지도 앱 URL Scheme이 제공하는 액션에 대해 설명합니다. 이 가이드를 통해 학습하게 되는 액션 사용법은 다음과 같습니다.

    참고

    길찾기(/route)와 내비게이션(/navigation)에서 사용하는 공통 파라미터는 본 아티클의 경로 탐색 공통 파라미터를 참조해 주십시오.

    지도 메인 표시

    네이버 지도 앱의 메인 화면을 보여줍니다.

    액션 경로

    /map
    

    파라미터

    파라미터타입필수 여부설명
    latdoubleN지도의 중심 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 앱의 기존 상태 유지
    lngdoubleN지도의 중심 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 앱의 기존 상태 유지
    zoomdoubleN지도의 줌 레벨
    • 입력값: 4 ~ 20
    • 기본값: 앱의 기존 상태 유지

    사용 예제

    지도 앱 메인 화면 표시
    다음은 입력 파라미터 없이 지도 앱의 메인 화면을 표시하는 예제입니다.

    nmap://map?&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-map-no-parameter_ko

    중심 좌표 및 줌 레벨 반영
    다음은 지도의 중심점을 (37.4979502, 127.0276368), 줌 레벨을 20으로 지정해 지도 앱의 메인 화면을 표시하는 예제입니다.

    nmap://map?lat=37.4979502&lng=127.0276368&zoom=20&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-map-parameter_ko

    통합 검색

    검색어에 맞는 지도 검색 결과를 보여줍니다.

    액션 경로

    /search
    

    파라미터

    파라미터타입필수 여부설명
    querystringY검색어
    • 입력값: URL 인코딩된 문자열

    사용예제

    다음은 '강남역'을 검색어로 넣어 지도를 검색하는 예제입니다.

    nmap://search?query=%EA%B0%95%EB%82%A8%EC%97%AD&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-search-normal_ko

    버스 검색

    검색어에 맞는 버스 검색 결과를 보여줍니다.

    액션 경로

    /search/bus
    

    파라미터

    파라미터타입필수 여부설명
    querystringY버스 번호
    • 입력값: URL 인코딩된 문자열

    사용예제

    다음은 222번 버스를 검색하는 예제입니다.

    nmap://search/bus?query=222&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-search-bus_ko

    마커 표시

    지정된 좌표에 마커를 표시합니다.

    액션 경로

    /place
    

    파라미터

    파라미터타입필수 여부설명
    latdoubleY위도
    • 입력값: 31.43 ~ 44.35
    lngdoubleY경도
    • 입력값: 122.37 ~ 132.00
    namestringY이름
    • 입력값: URL 인코딩된 문자열

    사용 예제

    다음은 (37.3677345,127.1083617) 위치에 '경기도 성남시 분당구 정자동' 마커를 표시하는 예제입니다.

    nmap://place?lat=37.3677345&lng=127.1083617&name=%EA%B2%BD%EA%B8%B0%EB%8F%84%20%EC%84%B1%EB%82%A8%EC%8B%9C%20%EB%B6%84%EB%8B%B9%EA%B5%AC%20%EC%A0%95%EC%9E%90%EB%8F%99&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-place_ko

    대중교통 길찾기

    대중교통 길찾기를 수행합니다.

    액션 경로

    /route/public
    

    파라미터

    경로 탐색 공통 파라미터 항목을 참조해 주십시오.

    사용 예제

    다음은 서울대학교에서 올림픽 공원까지 대중교통으로 가는 경로를 탐색하는 예제입니다.

    nmap://route/public?slat=37.4640070&slng=126.9522394&sname=%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&dlat=37.5209436&dlng=127.1230074&dname=%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B3%B5%EC%9B%90&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-route-public_ko

    자동차 길찾기

    자동차 길찾기를 수행합니다.

    액션 경로

    /route/car
    

    파라미터

    경로 탐색 공통 파라미터 항목을 참조해 주십시오.

    사용 예제

    서울대학교에서 올림픽 공원까지 자동차 길찾기 예제
    다음은 서울대학교에서 올림픽 공원까지 자동차로 가는 경로를 탐색하는 예제입니다.

    nmap://route/car?slat=37.4640070&slng=126.9522394&sname=%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&dlat=37.5209436&dlng=127.1230074&dname=%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B3%B5%EC%9B%90&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-route-car-1_ko

    경유지가 있을 경우 자동차 길찾기 예제
    다음은 그린팩토리에서 서울대학교를 경유해 성남시청까지 자동차로 가는 경로를 탐색하는 예제입니다.

    nmap://route/car?slat=37.3595953&slng=127.1053971&sname=%EA%B7%B8%EB%A6%B0%ED%8C%A9%ED%86%A0%EB%A6%AC&secoords=37.359761,127.10527&dlng=127.1267772&dlat=37.4200267&dname=%EC%84%B1%EB%82%A8%EC%8B%9C%EC%B2%AD&decoords=37.4189564,127.1256827&v1lng=126.9522394&v1lat=37.464007&v1name=%20%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&v1ecoords=37.466358,126.948357&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-route-car-2_ko

    도보 길찾기

    도보 길찾기를 수행합니다.

    액션 경로

    /route/walk
    

    파라미터

    경로 탐색 공통 파라미터 항목을 참조해 주십시오.

    사용 예제

    다음은 서울대학교에서 동원 낙성대 아파트까지 도보로 가는 경로를 탐색하는 예제입니다.

    nmap://route/walk?slat=37.4640070&slng=126.9522394&sname=%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&dlat=37.4764356&dlng=126.9618302&dname=%EB%8F%99%EC%9B%90%EB%82%99%EC%84%B1%EB%8C%80%EC%95%84%ED%8C%8C%ED%8A%B8&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-route-walk_ko

    자전거 길찾기

    자전거 길찾기를 수행합니다.

    액션 경로

    /route/bicycle
    

    파라미터

    경로 탐색 공통 파라미터 항목을 참조해 주십시오.

    사용 예제

    다음은 서울대학교에서 올림픽 공원까지 자전거로 가는 경로를 탐색하는 예제입니다.

    nmap://route/bicycle?slat=37.4640070&slng=126.9522394&sname=%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&dlat=37.5209436&dlng=127.1230074&dname=%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B3%B5%EC%9B%90&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-route-bicycle_ko

    내비게이션

    내비게이션 경로를 탐색합니다.

    액션 경로

    /navigation
    

    파라미터

    경로 탐색 공통 파라미터 항목을 참조해 주십시오.

    사용 예제

    안전 운행 모드 내비게이션
    다음은 안전 운행 모드로 내비게이션 화면을 표시하는 예제입니다.

    nmap://navigation?&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-navi-1_ko

    현재 위치에서 목적지까지 내비게이션
    다음은 사용자의 현재 위치로부터 올림픽 공원까지 내비게이션 경로를 탐색하는 예제입니다.

    nmap://navigation?dlat=37.5209436&dlng=127.1230074&dname=%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B3%B5%EC%9B%90&appname=com.example.myapp

    호출 결과는 다음과 같습니다.

    url-scheme-navi-2_ko

    경로 탐색 공통 파라미터

    길찾기(/route)와 내비게이션(/navigation)에서 사용하는 공통 파라미터입니다.

    파라미터타입필수 여부설명
    slatdoubleN출발지 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 사용자의 현 위치 사용
    slngdoubleN출발지 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 사용자의 현 위치 사용
    snamestringN출발지 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 사용자의 현 위치 사용
    dlatdoubleY도착지 위도
    • 입력값: 31.43 ~ 44.35
    dlngdoubleY도착지 경도
    • 입력값: 122.37 ~ 132.00
    dnamestringN도착지 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 도착지 주소 표시
    v1latdoubleN경유지 1 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 경유지 없음
    v1lngdoubleN경유지 1 경도
    • 입력값: 122.37~132.00
    • 기본값: 경유지 없음
    v1namestringN경유지 1 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 경유지 없음
    v2latdoubleN경유지 2 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 경유지 없음
    v2lngdoubleN경유지 2 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 경유지 없음
    v2namestringN경유지 2 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 경유지 없음
    v3latdoubleN경유지 3 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 경유지 없음
    v3lngdoubleN경유지 3 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 경유지 없음
    v3namestringN경유지 3 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 경유지 없음
    v4latdoubleN경유지 4 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 경유지 없음
    v4lngdoubleN경유지 4 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 경유지 없음
    v4namestringN경유지 4 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 경유지 없음
    v5latdoubleN경유지 5 위도
    • 입력값: 31.43 ~ 44.35
    • 기본값: 경유지 없음
    v5lngdoubleN경유지 5 경도
    • 입력값: 122.37 ~ 132.00
    • 기본값: 경유지 없음
    v5namestringN경유지 5 이름
    • 입력값: URL 인코딩된 문자열
    • 기본값: 경유지 없음

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.