ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • URL로 App 설치 확인 후 App 또는 마켓으로 이동하기
    Android 2019. 3. 27. 15:52

    요구사항

     

    • URL 에는 특정 고객을 식별할 수 있는 고유 코드가 있으며 앱 내로 코드가 전달되어야 한다.
    • App 이 설치되어 있지 않은 경우에 App 설치 후 실행하면 기존 파라미터가 전달되어야 한다.
    • 안드로이드 뿐만 아니라 아이폰에서도 작동해야 한다.

     

    Firebase Dynamic Links 

     

    • 링크를 수신한 사용자가 앱 내의 콘텐츠로 직접 이동

    • 앱을 설치하지 않은 사용자도 앱을 설치하고 시작하면 앱 내의 콘텐츠로 이동 가능

    • 도메인에 매개변수를 추가하여 앱 내에서 특정 작업 수행

     

    해야 할 일

     

    1.링크 만들기

     

    • 도메인은 5개까지 추가 가능하다

    https://sample1.page.link

    https://sample2.page.link

    https://sample3.page.link

    https://sample4.page.link

    https://sample5.page.link

     

     

    • 링크를 특정 사용자용으로 지정하려는 경우 매개변수를 추가할 수 있다

    ?gameid%3D1234%26referrer%3D55

     

     

    • 단축 URL 생성이 가능하다

    https://example.page.link/?link=https://www.example.com/invitation?gameid%3D1234%26referrer%3D555&apn=com.example.android&ibi=com.example.ios&isi=12345

    ->

    https://example.page.link/WXYZ

     

     

    2.링크 수신 및 처리

     

    링크를 수신하려면 iOS 또는 Android 프로젝트에 동적 링크 SDK 추가 및 설정 필요

    앱 설치 여부는 동적 링크가 판단하므로 추가 작업 필요 X

     


     

    도메인 생성

     

     

    링크 생성

     

    딥 링크 파라미터 아이디 test1234 는 변경 가능하다.

     

     


    안드로이드 프로젝트 적용 방법

     

    1.프로젝트에 google-services.json 파일 추가

     

    2.build.gradle

    3.AndroidManifest.xml 

    1
    2
    3
    4
    5
    6
    7
    8
    <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
    android:host="newtypedev.com"
    android:scheme="https"/>
    </intent-filter>
     

     

    4.MainActivity.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        private void showLink() {
            FirebaseDynamicLinks.getInstance()
                    .getDynamicLink(getIntent())
                    .addOnSuccessListener(thisnew OnSuccessListener<PendingDynamicLinkData>() {
                        @Override
                        public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                            if (pendingDynamicLinkData == null) {
                                 Toast.makeText(MainActivity.this,"null",Toast.LENGTH_LONG).show();
                                return;
                            }
                            else{
                                    Uri deepLink = pendingDynamicLinkData.getLink();
                                    Toast.makeText(MainActivity.this,deepLink+"",Toast.LENGTH_LONG).show();
                            }
     
                        }
                    })
                    .addOnFailureListener(thisnew OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                               Toast.makeText(MainActivity.this,"fail",Toast.LENGTH_LONG).show();
                        }
                    });
        }

    댓글

Designed by Tistory.