Receive Firebase Dynamic Links on Android
To receive the Firebase Dynamic Links that you created, you must include the Dynamic Links SDK in your app and call the
FirebaseDynamicLinks.getDynamicLink()
method when your app loads to get the data passed in the Dynamic Link.Set up Firebase and the Dynamic Links SDK
- If you haven't already, add Firebase to your Android project.When you register your app, specify your SHA-1 signing key. If you use App Links, also specify your SHA-256 key.
- In your project-level
build.gradle
file, make sure to include Google's Maven repository in both yourbuildscript
andallprojects
sections. - Add the dependency for the Firebase Dynamic Links Android library to your module (app-level) Gradle file (usually
app/build.gradle
): - In the Firebase console, open the Dynamic Links section. Accept the terms of service if you are prompted to do so.
Add an intent filter for deep links
As with plain deep links, you must add a new intent filter to the activity that handles deep links for your app. The intent filter should catch deep links of your domain, since the Dynamic Link will redirect to your domain if your app is installed. This is required for your app to receive the Dynamic Link data after it is installed/updated from the Play Store and one taps on Continue button. In
AndroidManifest.xml
:
When users open a Dynamic Link with a deep link to the scheme and host you specify, your app will start the activity with this intent filter to handle the link.
Handle deep links
To receive the deep link, call the
getDynamicLink()
method:
You must call
getDynamicLink()
in every activity that might be launched by the link, even though the link might be available from the intent using getIntent().getData()
. Calling getDynamicLink()
retrieves the link and clears that data so it is only processed once by your app.
You normally call
getDynamicLink()
in the main activity as well as any activities launched by intent filters that match the link.Record analytics
The following events can be automatically tracked in Google Analytics and shown in the Firebase console.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
In order to register these events, you need to configure Google Analytics before you retrieve the deep link. Check the following conditions are met:
- Call
FirebaseDynamicLinks.getDynamicLink()
in your app entry points: - Launcher activities. e.g.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Activity entry points. e.g.:
onStart()
,onCreate()
. - Deep link activities.
- Set up and use Google Analytics:
- Include the Google Analytics dependency. This is usually automatically added by the
google-services
Gradle plugin. - Include the
google-services.json
config file in your app. - Call
FirebaseAnalytics.getInstance()
before callingFirebaseDynamicLinks.getDynamicLink()
.
Handling Dynamic Links using App Links
On Android 6.0 (API level 23) and higher, you can set up your app to handle Dynamic Links directly when your app is already installed by using Android App Links.
Ensure that you have added the SHA256 certificate fingerprint for your app into your project in the Firebase console. Dynamic Links will handle setting up the App Links website association for your Dynamic Links domain.
Add an auto-verified intent filter to the Activity that will handle the Dynamic Link, setting the host to your project's Dynamic Links domain as found in the Firebase console. In the
AndroidManifest.xml
:
Note that the
android:host
must be set to your Dynamic Links domain, and not the domain of your deep link.
All
All of your Firebase apps' package names should be included.autoVerify
intent filters in your manifest must be registered in order for App Links to engage. Firebase handles this automatically for your Dynamic Links domains, but you can check this by opening the assetlinks.json
file hosted on your Dynamic Links domain:
Dynamic Links will now be sent directly to your app. You will be able to get the deep link and other Dynamic Link data by calling
getDynamicLink()
in the Activity you added the App Links intent filter to (as described inHandle deep links).
Comments
Post a Comment