Documentation
Search…
Deeplinks

Scheme

Internal scheme

apm:// is the internal scheme of the SDK APM
For example: a button in a interstitial opening the screen challenges apm://screen_challenge
You can use these internal scheme from :
    webView inApp (onboarding, walkthrough, campaign)
    button deeplink from a generosity
    button deeplink from a game
    button deeplink from a challenge

External direct scheme

apm<PARTNER_ID> is the external scheme of the SDK APM
For example: a push notification opening the screen challenges apm0123456789://screen_challenges
For use this external direct deeplink, you must configure the application with this new scheme.
iOS
Android
In file Info.plist, add the scheme apm<PARTNER_ID>, PARTNER_ID is the ID transmitted during the implementation of the project
1
<key>CFBundleURLTypes</key>
2
<array>
3
<dict>
4
<key>CFBundleTypeRole</key>
5
<string>Editor</string>
6
<key>CFBundleURLSchemes</key>
7
<array>
8
<!-- Add this scheme -->
9
<string>apm<PARTNER_ID></string> <!-- Example : apm0123456789 -->
10
</array>
11
</dict>
12
</array>
Copied!
Retrieve the deeplink in AppDelegate
1
-(BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
2
//Get the deeplink from "url"
3
}
Copied!
And, you can execute the deeplink in the HomeViewController of your app
1
//Check if deeplink is a valid APM deeplink
2
if([APMWKUtils schemeApmValidForUrl:url.absoluteString]) {
3
//Launch the deeplink
4
[APMWebViewUtils handleUrl:[NSURLRequest requestWithURL:deeplink] controller:self];
5
}
Copied!
If needed, you can use dispatch_after to launch the deeplink after some delay
1
//Check if deeplink is a valid APM deeplink
2
if([APMWKUtils schemeApmValidForUrl:url.absoluteString]) {
3
4
//Launch the deeplink after 500ms
5
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5f * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
6
[APMWebViewUtils handleUrl:[NSURLRequest requestWithURL:deeplink] controller:self];
7
});
8
}
Copied!
In file AndroidManifest.xml, add the scheme apm<PARTNER_ID>, PARTNER_ID is the ID transmitted during the implementation of the project
1
<activity
2
android:name=".SplashActivity"
3
<!-- ... -->
4
<intent-filter>
5
<action android:name="android.intent.action.MAIN" />
6
<category android:name="android.intent.category.LAUNCHER" />
7
</intent-filter>
8
<intent-filter>
9
<action android:name="android.intent.action.VIEW" />
10
<category android:name="android.intent.category.DEFAULT" />
11
<category android:name="android.intent.category.BROWSABLE" />
12
<category android:name="android.intent.category.APP_BROWSER" />
13
14
<!-- Add this scheme -->
15
<data android:scheme="apm<PARTNER_ID>" /> <!-- Example : apm0123456789 -->
16
</intent-filter>
17
</activity>
Copied!
Retrieve the deeplink in SplashActivity
1
@Override
2
protected void onCreate(Bundle savedInstanceState) {
3
super.onCreate(savedInstanceState);
4
//...
5
6
String deepLink = Utils.getDeeplinkFromIntent(getIntent());
7
}
Copied!
Class Utils
1
//Global method for get deeplink
2
public static String getDeeplinkFromIntent(Intent intent) {
3
//Deeplink from batch
4
String deepLink = BatchUtils.deepLinkFromIntent(intent);
5
6
//Default deeplink
7
if(deepLink == null && intent.getData() != null)
8
deepLink = intent.getData().toString();
9
10
return deepLink;
11
}
12
13
//Method util to get deeplink from a push notification from Batch
14
private static String deepLinkFromIntent(Intent intent) {
15
String deepLink = null;
16
if(intent != null && intent.getExtras() != null) {
17
try {
18
BatchPushPayload pushData = BatchPushPayload.payloadFromBundle(intent.getExtras());
19
if(pushData.hasDeeplink())
20
deepLink = pushData.getDeeplink();
21
}
22
catch(Exception e) {
23
e.printStackTrace();
24
}
25
}
26
return deepLink;
27
}
Copied!
And, you can execute the deeplink in the HomeActivity of your app
1
//Check if deeplink is a valid APM deeplink
2
if(APMWKUtils.schemeApmValidForUrl(deepLink)) {
3
//Launch the deeplink
4
APMWebViewUtils.handleUrl(deepLink);
5
}
Copied!
If needed, you can use a Handler object to launch the deeplink after some delay
1
//Check if deeplink is a valid APM deeplink
2
if(APMWKUtils.schemeApmValidForUrl(deepLink)) {
3
4
//Launch the deeplink after 500ms
5
final String finalDeepLink = deepLink;
6
handler.postDelayed(new Runnable() {
7
@Override
8
public void run() {
9
APMWebViewUtils.handleUrl(finalDeepLink);
10
}
11
}, 500);
12
13
}
Copied!
You can use these external scheme for
    push notification
    email link
    etc

External indirect scheme

If you use your scheme url to send a deeplink to your app. You can passe a sub deeplink.
For example: a push notification opening the screen challenges your_scheme://apm0123456789://screen_challenges
You can extract the sub deeplink and execute this as a External direct deeplink

Deeplinks Principaux

Ces deeplinks sont compatibles avec :
    Ecran Daily Challenge : clic sur le bouton "j'y vais"
    Ecran Challenges : clic sur un challenge
    Ecran Game : clic sur le bouton en bas de page
    triggerAction : trigger de type page
    WebView SDK (onboarding, walkthrough, tuto...)

Screen (big badge)

apm://screen_challenges Ouverture de l'écran challenge
apm://screen_trophies Ouverture de l'écran trophées
apm://screen_daily_challenge Ouverture de l'écran challenge du jour
apm://screen_how_works Ouverture de l'écran comment ça marche
apm://screen_barcode Ouverture de l'écran code-barre
apm://screen_burns Ouverture de l'écran historique de cadeau
apm://screen_burn/<BURN_ID> Ouverture de l'écran mon cadeau (déjà converti), BURN_ID est obligatoire
apm://screen_earns Ouverture de l'écran historique des gains
apm://screen_gifts Ouverture de l'écran catalogue cadeaux
apm://screen_gift/<GIFT_ID> Ouverture de l'écran mon cadeau (non converti), GIFT_ID est obligatoire
apm://screen_infos Ouverture de l'écran infos
apm://screen_my_account Ouverture de l'écran mon compte
apm://screen_unsubscribe Ouverture de l'écran se désinscrire
apm://screen_levels Ouverture de l'écran niveaux
apm://trigger_game/<GAME_ID> Ouverture d'un jeu, GAME_ID est obligatoire

Page (big badge or fullscreen)

apm://screen_page/<PAGE_ID> Ouverture de l'écran page webview, PAGE_ID est obligatoire
On peut ajouter l'option display : - bigbadge : qui permet d'afficher de la page en mode big badge - interstitial : qui permet d'afficher le page en mode fullscreen
apm://screen_page/10?display=bigbadge apm://screen_page/10?display=interstitial
apm://screen_pages/<RUBRIC_ID> Ouverture de l'écran page webview avec un slider selon le nombre de page configuré, RUBRIC_ID est obligatoire (v5.6.1)

Onboarding (fullscreen)

apm://onboarding_connected Ouverture de l'onboarding connecté
apm://onboarding_not_connected Ouverture de l'onboarding non connecté

TriggerAction

apm://trigger_action/<TAG_ID> Lance un triggerAction, TAG_ID est obligatoire
apm://trigger_action_back/ACTION_NAME Lance un triggerAction puis fait un back en mode big badge, TAG_ID est obligatoire
Ces deeplinks ne sont plus utilisées mais ils existent

Pages WebView (old)

apm://page/<PAGE_CONSTANT_ID> Ouverture de l'écran page webView, PAGE_CONSTANT_ID est obligatoire
1
//PAGE_CONSTANT_ID
2
public static final int APM_SHOW_PAGE_CNIL = 1;
3
public static final int APM_SHOW_PAGE_CGU = 2;
4
public static final int APM_SHOW_PAGE_MENTIONS = 3;
5
public static final int APM_SHOW_PAGE_HELPER = 4;
6
public static final int APM_SHOW_PAGE_APP_ONBOARDING = 7;
7
public static final int APM_SHOW_PAGE_APP_MENTION = 8;
8
public static final int APM_SHOW_PAGE_APP_TUTORIAL = 9;
Copied!
apm://screen_cnil Ouverture de l'écran page webView CNIL
apm://screen_cgu Ouverture de l'écran page webView CGU
apm://screen_mentions Ouverture de l'écran page webView MENTIONS
apm://screen_helper Ouverture de l'écran page webView HELPER
apm://screen_app_onboarding Ouverture de l'écran page webView ONBOARDING
apm://screen_app_mention Ouverture de l'écran page webView APP_ONBOARDING
apm://screen_app_tutorial Ouverture de l'écran page webView TUTORIAL

Deeplinks Spécifiques

Ces deeplinks sont compatibles avec :
    WebView SDK (onboarding, walkthrough, tuto...)

Général

apm://closeBadge Permet de fermer le big badge ou l'écran fullscreen
apm://back Permet de faire un back en mode big badge

Onboarding seulement

apm://onboarding/ok Clic sur le bouton Accepter d'un écran onboarding
apm://onboarding/later Clic sur le bouton Accepter d'un écran onboarding
apm://onboarding/never Clic sur le bouton Accepter d'un écran onboarding
Last modified 16d ago