하는 Firebase Dynamic Links를 받기 위해
앱에 Dynamic Links SDK를 포함하고
앱이 로드될 때 호출되는 FirebaseDynamicLinks.getDynamicLink()
메서드
Dynamic Link에 전달된 데이터를 가져옵니다.
Firebase 및 Dynamic Links SDK 설정
아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다.
앱을 등록할 때 SHA-1 서명 키를 지정합니다. 앱 링크를 사용하는 경우에도 SHA-256 키를 지정합니다.
-
모듈 (앱 수준) Gradle 파일에서 (일반적으로
<project>/<app-module>/build.gradle.kts
또는<project>/<app-module>/build.gradle
), Android용 Dynamic Links 라이브러리의 종속 항목을 추가합니다. 이때 Firebase Android BoM 드림 라이브러리 버전 관리를 제어할 수 있습니다.Dynamic Links 사용 환경을 최적화하려면 다음을 권장합니다. Google Analytics 사용 설정 Google 애널리틱스용 Firebase SDK를 앱에 추가하면 됩니다.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoM를 사용하면 앱은 항상 호환되는 Firebase Android 라이브러리 버전만 사용합니다.
(대안) BoM를 사용하지 않고 Firebase 라이브러리 종속 항목을 추가합니다.
Firebase BoM를 사용하지 않도록 선택하는 경우 각 Firebase 라이브러리 버전을 지정해야 합니다. 를 사용해야 합니다.
앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM를 사용하여 라이브러리 버전을 관리하는 것이 좋습니다. 이렇게 하면 모든 버전이 지원합니다.
드림dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.1.0' }
- Firebase 콘솔에서 Dynamic Links를 엽니다. 섹션으로 이동합니다. 서비스 약관에 동의하라는 메시지가 표시되면 약관에 동의합니다.
딥 링크에 대한 인텐트 필터 추가
일반 딥 링크를 사용하는 경우
딥 링크를 만들 수 있습니다 인텐트 필터는 도메인의 딥 링크를 포착해야 합니다.
앱이 설치되면 Dynamic Link이(가) 내 도메인으로 리디렉션됩니다. 앱이 다음 작업에 필요합니다.
Play 스토어에서 설치/업데이트하고 한 번 탭하면 Dynamic Link 데이터 수신
계속 버튼 AndroidManifest.xml
에서:
<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="example.com" android:scheme="https"/> </intent-filter>
개발자가 지정한 스키마 및 호스트로 연결되는 딥 링크로 Dynamic Link을 사용자가 열면 앱에서 실행됩니다. 이 인텐트 필터로 활동을 시작하여 링크를 처리합니다.
딥 링크 처리
딥 링크를 수신하려면 getDynamicLink()
메서드를 호출합니다.
Kotlin+KTX
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
Java
FirebaseDynamicLinks.getInstance() .getDynamicLink(getIntent()) .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { @Override public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { // Get deep link from result (may be null if no link is found) Uri deepLink = null; if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.getLink(); } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "getDynamicLink:onFailure", e); } });
getIntent().getData()
를 사용하여 인텐트에서 링크를 알아낼 수도 있지만 링크로 인해 시작될 수 있는 모든 활동에서 getDynamicLink()
를 호출해야 합니다. getDynamicLink()
를 호출하면 링크가 검색되고 데이터가 삭제되므로 앱에서 한 번만 처리됩니다.
일반적으로 메인 활동뿐 아니라 링크와 일치하는 인텐트 필터가 실행하는 모든 활동에서 getDynamicLink()
를 호출합니다.
애널리틱스 기록
다음 이벤트는 Google Analytics에서 자동으로 추적되고 Firebase 콘솔.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
이러한 이벤트를 등록하려면 다음을 실행하기 전에 Google Analytics를 구성해야 합니다. 딥 링크를 검색합니다. 다음 조건을 충족하는지 확인하세요.
- 앱 진입점에서
FirebaseDynamicLinks.getDynamicLink()
를 호출합니다. - 런처 활동. 예:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - 활동 진입점. 예:
onStart()
,onCreate()
. - 딥 링크 활동
- Google Analytics 설정 및 사용:
- Google Analytics 종속 항목을 포함합니다. 이는 일반적으로 게시자가 자동으로 추가합니다.
google-services
Gradle 플러그인 - 앱에
google-services.json
구성 파일을 포함합니다. FirebaseDynamicLinks.getDynamicLink()
를 호출하기 전에FirebaseAnalytics.getInstance()
를 호출합니다.
앱 링크를 사용하여 Dynamic Links 처리
Android 6.0 (API 수준 23) 이상에서는 Dynamic Links을 처리하도록 앱을 설정할 수 있습니다. 를 사용하여 앱이 이미 설치된 경우 Android App Links
다음에서 프로젝트의 SHA256 인증서 지문을 프로젝트에 추가했는지 확인 Firebase 콘솔. Dynamic Links에서 다음에 대한 앱 링크 웹사이트 연결 설정을 처리합니다. Dynamic Links 도메인
Dynamic Link를 처리할 활동에 자동 확인된 인텐트 필터를 추가하여
프로젝트의 Dynamic Links 도메인에 다음 사용자 인증 정보로
Firebase 콘솔에서 확인할 수 있습니다. 포함
AndroidManifest.xml
:
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="example.com/link" android:scheme="http"/> <data android:host="example.com/link" android:scheme="https"/> </intent-filter>
android:host
는 도메인이 아닌 Dynamic Links 도메인으로 설정해야 합니다.
를 입력합니다.
매니페스트의 모든 autoVerify
인텐트 필터를 등록해야 앱 링크가 작동합니다. Firebase는 Dynamic Links 도메인을 위해 이 작업을 자동으로 처리하지만
Dynamic Links 도메인에 호스팅된 assetlinks.json
파일을 열어서 다음을 실행합니다.
https://YOUR_DOMAIN/.well-known/assetlinks.json
이제 Dynamic Links가 앱으로 바로 전송됩니다. 딥 링크 및 기타
앱 링크를 추가한 활동에서 getDynamicLink()
를 호출하여 Dynamic Link 데이터
인텐트 필터를
딥 링크 처리).
참고: 앱 링크를 통해 호출하면 사용자가 앱으로 바로 연결되므로 동적 링크는 최소 필수 버전을 준수할 수 없습니다. 따라서 앱이 열리면 동적 링크의 최소 버전(getminimumappversion)과 PackageInfo.versionCode를 비교하고 필요한 경우 getUpdateAppIntent를 사용하여 앱을 업그레이드하도록 사용자를 리디렉션해야 합니다.