Guide d'intégration du SDK des canaux fabricants

Ce document vise à guider les clients dans l'intégration des SDK des différents canaux fabricants en utilisant une méthode d'intégration automatisée afin de permettre les notifications push hors ligne.

Pour télécharger le SDK, veuillez consulter Téléchargement des ressources. Pour le numéro de version le plus récent du SDK, veuillez consulter le Changelog.

Prérequis

  1. Le canal EngageLab a déjà été intégré.
  2. Avant d'intégrer le SDK du fabricant, vous devez demander les paramètres du canal fabricant concerné. Veuillez consulter le Guide de demande des paramètres du canal fabricant pour plus de détails.

Fichiers de ressources

  • Placez l'icône de notification nommée mtpush_notification_icon.png dans res/drawable/. Si elle n'est pas configurée, le SDK utilisera l'icône de l'application, ce qui peut entraîner des problèmes d'affichage sur les versions Android récentes.

Guide d'intégration du canal Xiaomi

Configurer le support de mavenCentral

Configurez le support de mavenCentral dans le fichier gradle principal du répertoire racine du projet. (Les nouveaux projets sont généralement configurés par défaut.)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant :

dependencies { // La version du fabricant doit correspondre à la version du SDK EngageLab implementation 'com.engagelab.plugin:mi:5.x.x' }
              
              dependencies {
    // La version du fabricant doit correspondre à la version du SDK EngageLab
    implementation 'com.engagelab.plugin:mi:5.x.x'
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les paramètres

Dans la section defaultConfig du fichier gradle du module application, ajoutez le code suivant :

manifestPlaceholders = [ // Définir les variables dans le fichier manifest.xml XIAOMI_APPKEY : "MI-APPKEY de votre application Xiaomi", // appkey enregistré sur la plateforme Xiaomi XIAOMI_APPID : "MI-APPID de votre application Xiaomi", // appid enregistré sur la plateforme Xiaomi ]
              
              manifestPlaceholders = [
    // Définir les variables dans le fichier manifest.xml
    XIAOMI_APPKEY : "MI-APPKEY de votre application Xiaomi", // appkey enregistré sur la plateforme Xiaomi
    XIAOMI_APPID : "MI-APPID de votre application Xiaomi", // appid enregistré sur la plateforme Xiaomi
]

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-dontwarn com.xiaomi.push.** -keep class com.xiaomi.push.** { *; }
              
              -dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTMiBusiness] support xiaomi push D [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=1, token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj region=NULL isUserSettings=false }
              
              D  [MTMiBusiness] support xiaomi push
D  [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=1,
    token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal Xiaomi

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : AppKey, AppID, AppSecret, puis cliquez sur "Enregistrer".
  2. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Remarques spéciales pour Xiaomi Android 13 et supérieur

  • Selon la documentation officielle de Xiaomi, Android 13 et supérieur exigent que la méthode de lancement de l'application corresponde précisément au filtre Intent pour garantir le bon fonctionnement sur les appareils Xiaomi.

    Veuillez consulter la documentation officielle de Google pour plus de détails sur les filtres Intent sous Android 13 et supérieur : Documentation officielle Google - Intent Filters

  • Recommandations pour les tests développeur :
    Les développeurs peuvent vérifier les "Modifications de compatibilité des applications" dans les options développeur sur les appareils Xiaomi et activer l'option ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS lors des tests pour garantir le bon fonctionnement de l'application dans tous les cas.

Guide d'intégration du canal Huawei

Configurer le support de mavenCentral

Configurez le support de mavenCentral et la dépendance agconnect dans le fichier gradle principal du répertoire racine du projet.

buildscript { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } } buildscript { dependencies { classpath 'com.huawei.agconnect:agcp:1.9.1.301' } } allprojects { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } }
              
              buildscript {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
buildscript {
    dependencies {
       classpath 'com.huawei.agconnect:agcp:1.9.1.301'
    }
}
allprojects {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

(Facultatif) Si vous utilisez gradle 8.0, ajoutez la commande suivante au fichier gradle.properties au niveau du projet :

Remarque : L'intégration de versions du plugin AGC inférieures à 1.9.1.300 ne prend pas en charge la compatibilité gradle 8.0. Vous devez exécuter cette étape.

apmsInstrumentationEnabled=false
              
              apmsInstrumentationEnabled=false

            
Afficher ce bloc de code dans la fenêtre flottante

Ajouter le plugin Huawei

Ajoutez la ligne suivante en bas du fichier build.gradle du module application pour activer le plugin gradle :

apply plugin: 'com.huawei.agconnect'
              
              apply plugin: 'com.huawei.agconnect'

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant, en sélectionnant la dernière version selon la publication Huawei :

dependencies { implementation 'com.huawei.hms:push:6.13.0.300' // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:huawei:5.x.x' }
              
              dependencies {
    
    implementation 'com.huawei.hms:push:6.13.0.300'
    
    // La version du fabricant doit correspondre à la version du SDK AppPush
    implementation 'com.engagelab.plugin:huawei:5.x.x'
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer le fichier agconnect-services.json

Consultez le Guide de demande des paramètres du canal fabricant pour obtenir le fichier agconnect-services.json et le placer dans le répertoire app.

alt text

Configurer le certificat de signature

Dans le fichier build.gradle, configurez la signature correspondant au certificat d'empreinte ajouté dans le backend Huawei.

Le service HMS exige que l'application soit signée pour une inscription réussie. Vous pouvez obtenir le certificat d'empreinte correspondant avec la commande keytool -list -v -keystore keystorefileName.

signingConfigs { release { storeFile file("release.keystore") // Chemin du fichier de signature storePassword "123456" keyAlias "android.keystore" keyPassword "123456" } } buildTypes { release { minifyEnabled true proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.release } debug{ minifyEnabled false signingConfig signingConfigs.release } }
              
              signingConfigs {
        release {
            storeFile file("release.keystore") // Chemin du fichier de signature
            storePassword "123456"
            keyAlias "android.keystore"
            keyPassword "123456"
        }
}

buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug{
          minifyEnabled false
           signingConfig signingConfigs.release
        }
 }

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
              
              -ignorewarnings
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature 
-keepattributes SourceFile,LineNumberTable 
-keep class com.hianalytics.android.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;}

            
Afficher ce bloc de code dans la fenêtre flottante

Si vous utilisez AndResGuard, ajoutez la liste blanche AndResGuard au fichier de configuration d'obfuscation.

"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*"
              
              "R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTHuaweiBusiness] support huawei push D [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=2, token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA region=NULL isUserSettings=false }
              
              
D  [MTHuaweiBusiness] support huawei push
D  [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=2,
    token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal Huawei

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : AppID, AppSecret, puis cliquez sur "Enregistrer".

alt text 2. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Guide d'intégration du canal Meizu

Configurer le support de mavenCentral

Dans le fichier gradle principal du répertoire racine du projet, configurez le support de mavenCentral. (Les nouveaux projets sont généralement configurés par défaut.)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant :

dependencies { // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:meizu:5.x.x' // Pour Meizu, à partir de la version 5.2.0 du SDK, il faut intégrer "com.engagelab.plugin:meizu_th_push". Avant la version 5.2.0, cette ligne n'est pas nécessaire. // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:meizu_th_push:5.2.0' }
              
              dependencies {
  // La version du fabricant doit correspondre à la version du SDK AppPush
  implementation 'com.engagelab.plugin:meizu:5.x.x'
  // Pour Meizu, à partir de la version 5.2.0 du SDK, il faut intégrer "com.engagelab.plugin:meizu_th_push". Avant la version 5.2.0, cette ligne n'est pas nécessaire.
  // La version du fabricant doit correspondre à la version du SDK AppPush
  implementation 'com.engagelab.plugin:meizu_th_push:5.2.0'


}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les paramètres

Dans la section defaultConfig du fichier gradle du module application, ajoutez le code suivant :

Les paramètres Meizu doivent être préfixés par "MZ-".

manifestPlaceholders = [ // Définir les variables dans le fichier manifest.xml MEIZU_APPKEY : "MZ-APPKEY de votre application Meizu", // appkey enregistré sur la plateforme Meizu MEIZU_APPID : "MZ-APPID de votre application Meizu", // appid enregistré sur la plateforme Meizu ]
              
              manifestPlaceholders = [
     // Définir les variables dans le fichier manifest.xml
     MEIZU_APPKEY : "MZ-APPKEY de votre application Meizu", // appkey enregistré sur la plateforme Meizu
     MEIZU_APPID : "MZ-APPID de votre application Meizu", // appid enregistré sur la plateforme Meizu
]

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** { *; }
              
              -dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTMeizuBusiness] support meizu push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=3, token=DDI5c060475064d447b40670206756d73605705037205 region=NULL isUserSettings=false }
              
              
D  [MTMeizuBusiness] support meizu push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=3,
    token=DDI5c060475064d447b40670206756d73605705037205
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Si le canal Meizu ne parvient pas à obtenir le token, essayez d'ajouter android.enableR8 = false dans le fichier gradle.properties pour désactiver R8.

Méthode de test du fabricant Meizu

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : AppKey, AppID, AppSecret, puis cliquez sur "Enregistrer". alt text

  2. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Guide d'intégration du canal Vivo

Configurer le support de mavenCentral

Dans le fichier gradle principal du répertoire racine du projet, configurez le support de mavenCentral. (Les nouveaux projets sont généralement configurés par défaut.)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant :

dependencies{ // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:vivo:5.x.x' }
              
              dependencies{  
    // La version du fabricant doit correspondre à la version du SDK AppPush
    implementation 'com.engagelab.plugin:vivo:5.x.x'
} 

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les paramètres

Dans la section defaultConfig du fichier gradle du module application, ajoutez le code suivant :

manifestPlaceholders=[ VIVO_APPKEY : "APPKEY de votre application Vivo", // appkey enregistré sur la plateforme Vivo VIVO_APPID : "APPID de votre application Vivo", // appid enregistré sur la plateforme Vivo ]
              
              manifestPlaceholders=[  
    VIVO_APPKEY : "APPKEY de votre application Vivo", // appkey enregistré sur la plateforme Vivo
    VIVO_APPID : "APPID de votre application Vivo", // appid enregistré sur la plateforme Vivo
] 

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTVivoBusiness] support vivo push D [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=5, token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ region=NULL isUserSettings=false }
              
              D  [MTVivoBusiness] support vivo push
D  [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=5,
    token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; }
              
              -dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal Vivo

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : AppKey, AppID, AppSecret, puis cliquez sur "Enregistrer".

alt text 2. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Si Vivo n'est pas disponible sur le marché, lors du test du push, vous devez ajouter l'appareil de test sur la plateforme push Vivo et n'envoyer le push que via l'API avec le push_mode spécifié.

"options": { "classification": 1, "third_party_channel": { "vivo": { "pushMode": 1, // Optionnel, ajouté le 21/09/2020. Correspond au champ pushMode de Vivo : “0” pour push formel ; “1” pour push de test, valeur par défaut 0 "distribution_new": "pns_mtpush" } } }
              
               "options": {           
    "classification": 1,           
    "third_party_channel": {                
        "vivo": {                    
            "pushMode":  1, // Optionnel, ajouté le 21/09/2020. Correspond au champ pushMode de Vivo : “0” pour push formel ; “1” pour push de test, valeur par défaut 0                 
            "distribution_new": "pns_mtpush"                
        }            
    }        
}

            
Afficher ce bloc de code dans la fenêtre flottante

Guide d'intégration du canal OPPO

Configurer le support de mavenCentral

Dans le fichier gradle principal du répertoire racine du projet, configurez le support de mavenCentral. (Les nouveaux projets sont généralement configurés par défaut.)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant :

dependencies{ // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:oppo:5.x.x' implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' // OPPO nécessite l'ajout des dépendances suivantes implementation 'com.google.code.gson:gson:2.10.1' implementation 'commons-codec:commons-codec:1.6' implementation 'androidx.annotation:annotation:1.1.0' }
              
              dependencies{  
    // La version du fabricant doit correspondre à la version du SDK AppPush
    implementation 'com.engagelab.plugin:oppo:5.x.x' 
    implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' 

    // OPPO nécessite l'ajout des dépendances suivantes
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'commons-codec:commons-codec:1.6'
    implementation 'androidx.annotation:annotation:1.1.0'
} 

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les paramètres

Dans la section defaultConfig du fichier gradle du module application, ajoutez le code suivant :

Les paramètres OPPO doivent être préfixés par "OP-".

manifestPlaceholders=[ OPPO_APPKEY : "OP-APPKEY de votre application OPPO", // appkey enregistré sur la plateforme OPPO OPPO_APPID : "OP-APPID de votre application OPPO", // appid enregistré sur la plateforme OPPO OPPO_APPSECRET: "OP-APPSECRET de votre application OPPO" // appsecret enregistré sur la plateforme OPPO ]
              
              manifestPlaceholders=[  
    OPPO_APPKEY : "OP-APPKEY de votre application OPPO", // appkey enregistré sur la plateforme OPPO
    OPPO_APPID : "OP-APPID de votre application OPPO", // appid enregistré sur la plateforme OPPO
    OPPO_APPSECRET: "OP-APPSECRET de votre application OPPO" // appsecret enregistré sur la plateforme OPPO
] 

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-dontwarn com.coloros.mcsdk.** -keep class com.coloros.mcsdk.** { *; } -dontwarn com.heytap.** -keep class com.heytap.** { *; } -dontwarn com.mcs.** -keep class com.mcs.** { *; }
              
              -dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }

-dontwarn com.heytap.**
-keep class com.heytap.** { *; }

-dontwarn com.mcs.**
-keep class com.mcs.** { *; }

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTOppoBusiness] support oppo push D [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=4, token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 region=NULL isUserSettings=false }
              
              
D  [MTOppoBusiness] support oppo push
D  [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=4,
    token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal OPPO

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : AppKey, AppID, AppSecret, MasterSecret, puis cliquez sur "Enregistrer".

alt text 2. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Si l'application n'est pas disponible, les tests nécessitent de demander une autorisation de test push sur la plateforme OPPO. Chaque application peut envoyer 1000 messages publics par jour.

Guide d'intégration du canal FCM

Configurer le support de mavenCentral

Dans le fichier gradle principal du répertoire racine du projet, configurez le support de mavenCentral et la dépendance google-services.

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { mavenCentral() maven { url "https://maven.google.com" } } }
              
              buildscript {
    repositories {
        mavenCentral() 
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven { url "https://maven.google.com" } 
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Ajouter le plugin FCM

En bas du fichier build.gradle du module application, ajoutez la ligne suivante pour activer le plugin gradle :

apply plugin: 'com.google.gms.google-services'
              
              apply plugin: 'com.google.gms.google-services'

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les dépendances

Dans la section dependencies du fichier gradle du module application, ajoutez le code suivant :

dependencies { // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:25.0.0' }
              
              dependencies {
    // La version du fabricant doit correspondre à la version du SDK AppPush
    implementation 'com.engagelab.plugin:google:5.x.x'
    implementation 'com.google.firebase:firebase-messaging:25.0.0'
}

            
Afficher ce bloc de code dans la fenêtre flottante

Dans la section android du fichier gradle du module application, ajoutez le code suivant :

android { // google push nécessite java 1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
              
              android {
    // google push nécessite java 1.8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer le fichier google-services.json

Consultez le Guide de demande des paramètres du canal fabricant pour obtenir le fichier google-services.json et le placer dans le répertoire app.

alt text

Configurer l'icône de notification FCM

Ajoutez la configuration suivante dans le fichier AndroidManifest.xml pour définir l'icône de notification FCM.

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/Votre icône de notification" />
              
              <meta-data android:name="com.google.firebase.messaging.default_notification_icon"  
     android:resource="@drawable/Votre icône de notification" />  

            
Afficher ce bloc de code dans la fenêtre flottante

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTGoogleBusiness] support google push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=8, token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h region=NULL isUserSettings=false }
              
              
D  [MTGoogleBusiness] support google push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=8,
    token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal FCM

  1. Prérequis pour le test :
  • Le système du téléphone doit disposer des services Google Play, version 17.3.4 ou supérieure.
  • Le test nécessite une connexion à un VPN étranger et l'accès du réseau du téléphone à Google.
  • Si vous utilisez un téléphone domestique pour le test, l'application doit rester en arrière-plan ; le test échouera si l'application est fermée, car les fabricants locaux peuvent tuer le processus en arrière-plan.
  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez le paramètre : App Secret, puis cliquez sur "Enregistrer". alt text

  2. Si vous testez en Chine, vous devez définir le code pays après l'initialisation.

public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); MTCorePrivatesApi.configDebugMode(this, true); // Définir le code pays -- Ne pas définir ceci en production MTGlobal.setCountryCode("US"); // Initialiser MTPushPrivatesApi.init(this); } }
              
              public class ExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
    
        MTCorePrivatesApi.configDebugMode(this, true);

        // Définir le code pays -- Ne pas définir ceci en production
        MTGlobal.setCountryCode("US");
         
        // Initialiser
        MTPushPrivatesApi.init(this);
        
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante
  1. Dans le backend AppPush, vérifiez si le push a été envoyé via le canal FCM ou le canal EngageLab.

alt text

Guide d'intégration du canal Honor

Configurer le support de mavenCentral

Dans le fichier gradle principal du répertoire racine du projet, configurez le support de mavenCentral. (Les nouveaux projets sont généralement configurés par défaut.)

buildscript { repositories { ... mavenCentral() ... } } allprojects { repositories { ... mavenCentral() ... } }
              
              buildscript {
    repositories {
      ...
      mavenCentral()
      ...
    }
}

allprojects {
    repositories {
        ...
        mavenCentral()
        ...
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer les paramètres et dépendances

Dans le fichier build.gradle du module projet, ajoutez le code suivant :

defaultConfig { ... manifestPlaceholders = [ ... HONOR_APPID : "APP ID de votre application Honor", // APP ID enregistré sur la plateforme Honor ... ] ... } dependencies { ... // La version du fabricant doit correspondre à la version du SDK AppPush implementation 'com.engagelab.plugin:honor:5.x.x' implementation 'com.engagelab.plugin:honor_th_push:5.x.x' ... }
              
                defaultConfig {
        ...
        manifestPlaceholders = [
               ...
               HONOR_APPID : "APP ID de votre application Honor", // APP ID enregistré sur la plateforme Honor
               ...
        ]
        ...
    }
  dependencies {
        ...
        // La version du fabricant doit correspondre à la version du SDK AppPush
        implementation 'com.engagelab.plugin:honor:5.x.x' 
        implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
        ...
  }

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer le certificat de signature

Dans le fichier build.gradle, configurez la signature correspondant au certificat d'empreinte ajouté dans le backend Honor.

Le service Honor exige que l'application soit signée pour une inscription réussie. Vous pouvez obtenir le certificat d'empreinte correspondant avec la commande keytool -list -v -keystore <chemin du fichier keystore>.

Validation du succès de l'intégration

Si l'intégration est réussie, le journal affichera ce qui suit :

D [MTHonorBusiness] support honor push D [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=7, token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 region=NULL isUserSettings=false }
              
              
D  [MTHonorBusiness] support honor push
D  [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=7,
    token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
    region=NULL
    isUserSettings=false
}

            
Afficher ce bloc de code dans la fenêtre flottante

Configurer l'obfuscation du code

Si vous utilisez proguard, ajoutez le contenu suivant au fichier de configuration pour éviter que de fausses alertes n'empêchent la compilation :

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hihonor.push.**{*;}
              
              
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
  

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de test du canal Honor

  1. Rendez-vous dans [Console EngageLab] -> [AppPush] -> [Paramètres de base] -> [Paramètres d'intégration], saisissez les paramètres : App ID, Client ID, Client Secret, App Secret, puis cliquez sur "Enregistrer".

alt text

  1. Après avoir tué le processus de l'application, effectuez un push. Si la notification est reçue, l'intégration du canal fabricant est réussie.

Comment remonter les notifications fabricant sans intégrer le SDK fabricant mais en utilisant tout de même EngageLab pour pousser les messages fabricant

/** * Remonter l'arrivée d'une notification du canal fabricant * * Remontée via http/https * * @param context Non nul * @param messageId ID de message EngageLab, non nul * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google) * @param platformMessageId ID de message fabricant, peut être nul */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Remonter l'arrivée d'une notification du canal fabricant
     * 
     * Remontée via http/https
     *
     * @param context           Non nul
     * @param messageId         ID de message EngageLab, non nul
     * @param platform          Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google)
     * @param platformMessageId ID de message fabricant, peut être nul
     */
    public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
Afficher ce bloc de code dans la fenêtre flottante
/** * Remonter le clic sur une notification du canal fabricant * * Remontée via http/https * * @param context Non nul * @param messageId ID de message EngageLab, non nul * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId ID de message fabricant, peut être nul */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Remonter le clic sur une notification du canal fabricant
     * 
     * Remontée via http/https
     *
     * @param context           Non nul
     * @param messageId         ID de message EngageLab, non nul
     * @param platform          Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId ID de message fabricant, peut être nul
     */
    public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
Afficher ce bloc de code dans la fenêtre flottante
/** * Remonter la suppression d'une notification du canal fabricant * * Remontée via http/https * * @param context Non nul * @param messageId ID de message EngageLab, non nul * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId ID de message fabricant, peut être nul */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Remonter la suppression d'une notification du canal fabricant
     * 
     * Remontée via http/https
     *
     * @param context           Non nul
     * @param messageId         ID de message EngageLab, non nul
     * @param platform          Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId ID de message fabricant, peut être nul
     */
    public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
Afficher ce bloc de code dans la fenêtre flottante
/** * Remonter l'ouverture d'une notification du canal fabricant * * Remontée via http/https * * @param context Non nul * @param messageId ID de message EngageLab, non nul * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId ID de message fabricant, peut être nul */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Remonter l'ouverture d'une notification du canal fabricant
     * 
     * Remontée via http/https
     *
     * @param context           Non nul
     * @param messageId         ID de message EngageLab, non nul
     * @param platform          Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId ID de message fabricant, peut être nul
     */
    public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
Afficher ce bloc de code dans la fenêtre flottante
/** * Télécharger le token fabricant * * Doit être appelé après l'établissement réussi de la connexion longue EngageLab, sinon invalide. L'état de connexion longue est établi lorsque le callback `MTCommonReceiver.onConnectStatus` retourne true. * * Téléchargement via TCP * * @param context Non nul * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param token Token retourné par le fabricant, non nul */ public static void uploadPlatformToken(Context context, byte platform, String token)
              
                  /**
     * Télécharger le token fabricant
     *
     * Doit être appelé après l'établissement réussi de la connexion longue EngageLab, sinon invalide. L'état de connexion longue est établi lorsque le callback `MTCommonReceiver.onConnectStatus` retourne true.
     * 
     * Téléchargement via TCP
     *
     * @param context  Non nul
     * @param platform Fabricant, valeurs possibles (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param token    Token retourné par le fabricant, non nul
     */
    public static void uploadPlatformToken(Context context, byte platform, String token)

            
Afficher ce bloc de code dans la fenêtre flottante
icon
Contactez-nous