To receive the Firebase Dynamic Links
that you created
,
you must include the Dynamic Links
SDK in your app and create a firebase::dynamic_links::Listener
object that implements the OnDynamicLinkReceived
virtual function.
The C++ SDK works for both Android and iOS, with some additional setup required for each platform.
Before you begin
Before you can use Firebase Dynamic Links , you need to:
-
Register your C++ project and configure it to use Firebase.
If your C++ project already uses Firebase, then it's already registered and configured for Firebase.
-
Add the Firebase C++ SDK to your C++ project.
Note that adding Firebase to your C++ project involves tasks both in the Firebase console and in your open C++ project (for example, you download Firebase config files from the console, then move them into your C++ project).
Add custom URL schemes (for iOS only)
The Firebase Dynamic Links C++ client library uses custom URL schemes on iOS to process links. You must add custom URL schemes to your app to support receiving Dynamic Links .
-
To open your project configuration, double-click the project name in the left tree view.
-
Select your app from the TARGETSsection, then select the Infotab, then expand the URL Typessection.
-
Click the +button, then add a URL scheme for your reversed client ID. To find this value:
-
Open the
GoogleService-Info.plist REVERSED_CLIENT_ID
key. -
Copy the value of that key, then paste it into the URL Schemesbox on the configuration page.
-
Leave the other fields blank.
-
-
Click the +button, then add a second URL scheme. This one is the same as your app's bundle ID.
For example, if your bundle ID is
com.example.ios
, type that value into the URL Schemesbox.You can find your app's bundle ID in the Generaltab of the project configuration ( Identity > Bundle Identifier).
Receiving a Dynamic Link
Create and initialize App
Before you can check for received Dynamic Links
, you'll need to create and initialize
a firebase::App
object.
Include the header file for firebase::App
:
#include "firebase/app.h"
The next part varies depending on your platform:
Android
Create the firebase::App
, passing the JNI environment and a jobject
reference to the Java Activity as arguments:
app = :: firebase :: App :: Create ( :: firebase :: AppOptions ( "APPLICATION NAME" ), jni_env , activity );
iOS
Create the firebase::App
:
app = :: firebase :: App :: Create ( :: firebase :: AppOptions ( "APPLICATION NAME" ));
Implement Listener to check for Dynamic Links
To check for a received Dynamic Link
, implement and use the firebase::dynamic_links::Listener
class.
Include the header file for receiving Dynamic Links :
#include "firebase/dynamic_links.h"
Initialize the Dynamic Links library:
:: firebase :: dynamic_links :: Initialize ( app , null );
Create an object that implements firebase::dynamic_links::Listener
,
and supply it to the Dynamic Links
library with SetListener()
,
or pass it as the second argument to Initialize
.
To receive Dynamic Links
, your Listener class must implement the OnDynamicLinkReceived
virtual function. By overriding the method, you can receive a deep link, if
one was received.
class Listener : public firebase :: dynamic_links :: Listener { public : // Called on the client when a dynamic link arrives. void OnDynamicLinkReceived ( const firebase :: dynamic_links :: DynamicLink * dynamic_link ) override { printf ( "Received link: %s" , dynamic_link - > url . c_str ()); } };