투케이2K

334. (AndroidStudio/android/java) 카카오 맵 (kakao map) http 외부 링크 이동 및 위도, 경도, 마커 설정 실시 본문

Android

334. (AndroidStudio/android/java) 카카오 맵 (kakao map) http 외부 링크 이동 및 위도, 경도, 마커 설정 실시

투케이2K 2022. 9. 1. 11:01

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[호출 : 소스 코드]

        // -----------------------------------------

        /**
         * // --------------------------------------
         * TODO [http 주소 사용해 외부 링크로 이동 및 카카오 맵 위도, 경도, 마커 좌표 표시]
         * // --------------------------------------
         * 1. 지도 바로가기 : https://map.kakao.com/link/map/marker,37.402056,127.108212
         * // --------------------------------------
         * 2. 로드뷰 바로가기 : https://map.kakao.com/link/roadview/37.402056,127.108212
         * // --------------------------------------
         * */

        // [크롬 브라우저 사용해 외부 링크 이동 실시]
        C_MoveApp.goChromeBrowser(A_Intro.this, "https://map.kakao.com/link/map/marker,37.402056,127.108212");

        // -----------------------------------------
 

[링크 이동 : 소스 코드]

    public static void goChromeBrowser(Context mContext, String url){

        /**
         * // -----------------------------------------
         * [goChromeBrowser 메소드 설명]
         * // -----------------------------------------
         * 1. getLaunchIntentForPackage 사용해 크롬 앱 설치 여부 확인 및 외부 링크 이동 실시
         * // -----------------------------------------
         * 2. 호출 방법 : C_MoveApp.goChromeBrowser(A_Main.this, "https://www.naver.com");
         * // -----------------------------------------
         * 3. 로 직 : 크롬 앱이 설치된 경우 크롬 브라우저 실행 / 크롬 브라우저가 설치되지 않은 경우 일반 브라우저 실행
         * // -----------------------------------------
         * */

        // [크롬 브라우저 패키지명]
        final String packageNames = "com.android.chrome";

        // [사전 주소가 널인지 체크 실시]
        if (url != null && url.length()>0
                && !url.trim().equals("") && !url.trim().equals("null")
                && url.startsWith("http") == true){
        }
        else { // [주소가 널인 경우]
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_MoveApp >> goChromeBrowser() :: 크롬 브라우저 사용해 외부 링크 이동 실시 [크롬 설치 확인 실패]]");
            Log.i("","\n"+"[error :: "+"주소 null 널 임"+"]");
            Log.i("","\n"+"[url :: "+String.valueOf(url)+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
            return;
        }

        // [URL 주소 공백 제거 실시]
        String urlParse = String.valueOf(url);
        urlParse = urlParse.trim();
        urlParse = urlParse.replaceAll(" ","");

        // [url 주소 삽입]
        final String urlData = urlParse;

        // [외부앱이 설치되었는지 확인]
        try {
            // [특정 패키지 명이 앱에 설치 되어 있는지 확인]
            Intent existPackage = mContext.getPackageManager().getLaunchIntentForPackage(packageNames);
            if (existPackage != null) { // [설치되어 있는 경우]
                Log.i("---","---");
                Log.w("//===========//","================================================");
                Log.i("","\n"+"[C_MoveApp >> goChromeBrowser() :: 크롬 브라우저 사용해 외부 링크 이동 실시 [크롬 설치 확인]]");
                Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
                Log.i("","\n"+"[상태 :: "+"외부 앱 설치 됨"+"]");
                Log.w("//===========//","================================================");
                Log.i("---","---");

                // [크롬 브라우저를 통해 외부 링크 호출]
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                intent.setPackage(packageNames); // [크롬 브라우저 지정]
                intent.setData(Uri.parse(urlData));
                mContext.startActivity(intent);
            }
            else { // [설치되지 않은 경우]
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_MoveApp >> goChromeBrowser() :: 크롬 브라우저 사용해 외부 링크 이동 실시 [크롬 설치 확인 실패]]");
                Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
                Log.i("","\n"+"[주 소 :: "+String.valueOf(urlData)+"]");
                Log.i("","\n"+"[로 직 :: "+"크롬 브라우저 사용해 외부 링크 이동 실시"+"]");
                Log.e("//===========//","================================================");
                Log.i("---","---");

                // [일반 기본 설정된 브라우저로 이동]
                goNormalBrowser(mContext, urlData);
            }
        }
        catch (ActivityNotFoundException e) {
            // TODO [이동할 패키지 명을 찾이 못한 경우]
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_MoveApp >> goChromeBrowser() :: 크롬 브라우저 사용해 외부 링크 이동 실시 [크롬 설치 확인 실패]]");
            Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
            Log.i("","\n"+"[주 소 :: "+String.valueOf(urlData)+"]");
            Log.i("","\n"+"[로 직 :: "+"일반 브라우저 사용해 외부 링크 이동 실시"+"]");
            Log.i("","\n"+"[ActivityNotFoundException :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");

            // [일반 기본 설정된 브라우저로 이동]
            goNormalBrowser(mContext, urlData);
        }
        catch (Exception e){
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_MoveApp >> goChromeBrowser() :: 크롬 브라우저 사용해 외부 링크 이동 실시 [크롬 설치 확인 실패]]");
            Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
            Log.i("","\n"+"[주 소 :: "+String.valueOf(urlData)+"]");
            Log.i("","\n"+"[로 직 :: "+"일반 브라우저 사용해 외부 링크 이동 실시"+"]");
            Log.i("","\n"+"[Exception :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","==============================================
            Log.i("---","---");

            // [일반 기본 설정된 브라우저로 이동]
            goNormalBrowser(mContext, urlData);
        }
    }
 

[결과 출력]

 

반응형
Comments