Logo Site EngageLab Mark Colored Transparent
Documentación

Guía de integración de canales de fabricantes

Guía de integración del SDK de canal de fabricantes

Este documento tiene como objetivo guiar a los clientes en la integración de los SDK de diversos canales de fabricantes mediante un método de integración automatizada, para lograr notificaciones push sin conexión.

Para descargar el SDK, consulte Descarga de recursos.
Para conocer el número de la versión más reciente del SDK, consulte el Registro de cambios.

Requisitos previos

  1. Ya se ha integrado el canal Engagelab.
  2. Antes de integrar el SDK del fabricante, se deben solicitar los parámetros correspondientes del canal del fabricante. Para más detalles, consulte la Guía de solicitud de parámetros del canal del fabricante.

Archivos de recursos

  • Colocar el icono de notificación denominado mtpush_notification_icon.png en res/drawable/. Si no se configura, el SDK utilizará el icono de la aplicación y, en versiones superiores de Android, pueden producirse problemas de visualización.

Guía de integración del canal Xiaomi

Configurar compatibilidad con mavenCentral

Configurar la compatibilidad con mavenCentral en el archivo gradle principal del directorio raíz del proyecto. (Por lo general, los proyectos nuevos vienen configurados con esta compatibilidad de forma predeterminada).

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

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

En la sección dependencies del archivo gradle del módulo de la aplicación, añadir el siguiente código:

dependencies { // La versión del fabricante debe coincidir con la versión del SDK de Engagelab implementation 'com.engagelab.plugin:mi:5.x.x' // Para el fabricante Xiaomi, a partir de la versión 5.4.0 del SDK, es necesario integrar "com.engagelab.plugin:mi_th_push"; no es necesario antes de la versión 5.4.0. implementation 'com.engagelab.plugin:mi_th_push:5.x.x' }
              
              dependencies {
    // La versión del fabricante debe coincidir con la versión del SDK de Engagelab
    implementation 'com.engagelab.plugin:mi:5.x.x'
    // Para el fabricante Xiaomi, a partir de la versión 5.4.0 del SDK, es necesario integrar "com.engagelab.plugin:mi_th_push"; no es necesario antes de la versión 5.4.0.
    implementation 'com.engagelab.plugin:mi_th_push:5.x.x'
}

            
Este bloque de código se muestra en una ventana flotante

Configurar parámetros

En la sección defaultConfig del archivo gradle del módulo de la aplicación, añadir el siguiente código:

manifestPlaceholders = [ // Establecer variables en el archivo manifest.xml XIAOMI_APPKEY : "MI-Your Xiaomi app's APPID", // appkey registrada en la plataforma Xiaomi XIAOMI_APPID : "MI-Your Xiaomi app's APPKEY", // appid registrada en la plataforma Xiaomi ]
              
              manifestPlaceholders = [
    // Establecer variables en el archivo manifest.xml
    XIAOMI_APPKEY : "MI-Your Xiaomi app's APPID", // appkey registrada en la plataforma Xiaomi
    XIAOMI_APPID : "MI-Your Xiaomi app's APPKEY", // appid registrada en la plataforma Xiaomi
]

            
Este bloque de código se muestra en una ventana flotante

Configurar ofuscación de código

Si se utiliza proguard, añadir el siguiente contenido al archivo de configuración para evitar que informes de advertencias falsas impidan una compilación correcta:

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

            
Este bloque de código se muestra en una ventana flotante

Validación de integración correcta

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Método de prueba del canal Xiaomi

  1. Ir a [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings], introducir los parámetros AppKey, AppID, AppSecret y hacer clic en "Save".
  2. Tras finalizar el proceso de la app, realizar un push. Si se recibe el push, la integración del canal del fabricante se ha realizado correctamente.

Guía de integración del canal Huawei

Configurar compatibilidad con mavenCentral

Configure mavenCentral y la dependencia de agconnect en el archivo Gradle principal de la raíz del proyecto.

Groovy (build.gradle):

buildscript { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } 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/'}
    }
    dependencies {
        classpath 'com.huawei.agconnect:agcp:1.9.1.301'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

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

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://developer.huawei.com/repo/") }
    }
}

            
Este bloque de código se muestra en una ventana flotante

(Opcional) Si utiliza Gradle 8.0, añada la siguiente configuración al archivo gradle.properties del proyecto:

Nota: Este paso es necesario si utiliza una versión del complemento AGC anterior a 1.9.1.300 que no sea compatible con Gradle 8.0.

apmsInstrumentationEnabled=false
              
              apmsInstrumentationEnabled=false

            
Este bloque de código se muestra en una ventana flotante

Añadir el complemento de Huawei

Añada la línea apply plugin al final del archivo build.gradle del módulo de la app para habilitar el complemento de Gradle:

Groovy (build.gradle):

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

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

plugins { id("com.huawei.agconnect") }
              
              plugins {
    id("com.huawei.agconnect")
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

Añada el siguiente código al bloque dependencies del archivo Gradle del módulo de la app. Puede seleccionar una versión más reciente según las versiones publicadas por Huawei:

Groovy (build.gradle):

dependencies { implementation 'com.huawei.hms:push:6.13.0.300' //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:huawei:5.x.x' }
              
              dependencies {

    implementation 'com.huawei.hms:push:6.13.0.300'

    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation 'com.engagelab.plugin:huawei:5.x.x'
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

dependencies { implementation("com.huawei.hms:push:6.13.0.300") //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:huawei:5.x.x") }
              
              dependencies {
    implementation("com.huawei.hms:push:6.13.0.300")

    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:huawei:5.x.x")
}

            
Este bloque de código se muestra en una ventana flotante

Configurar el archivo agconnect-services.json

Consulte Guía para solicitar parámetros de los canales de fabricantes para obtener el archivo agconnect-services.json y colocarlo en el directorio app.

alt text

Configurar el certificado de firma

Configure en build.gradle la firma correspondiente a la huella del certificado registrada en la consola de Huawei.

Los servicios HMS requieren que la app esté firmada para registrarla correctamente. Puede obtener la huella del certificado en el terminal con keytool -list -v -keystore keystorefileName.

Groovy (build.gradle):

signingConfigs { release { storeFile file("release.keystore")//Ruta del archivo de firma 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")//Ruta del archivo de firma
            storePassword "123456"
            keyAlias "android.keystore"
            keyPassword "123456"
        }
}

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

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

signingConfigs { create("release") { storeFile = file("release.keystore") // Ruta del archivo de firma storePassword = "123456" keyAlias = "android.keystore" keyPassword = "123456" } } buildTypes { getByName("release") { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") signingConfig = signingConfigs.getByName("release") } getByName("debug") { isMinifyEnabled = false signingConfig = signingConfigs.getByName("release") } }
              
              signingConfigs {
    create("release") {
        storeFile = file("release.keystore") // Ruta del archivo de firma
        storePassword = "123456"
        keyAlias = "android.keystore"
        keyPassword = "123456"
    }
}

buildTypes {
    getByName("release") {
        isMinifyEnabled = true
        proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        signingConfig = signingConfigs.getByName("release")
    }
    getByName("debug") {
        isMinifyEnabled = false
        signingConfig = signingConfigs.getByName("release")
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar la ofuscación de código

Si utiliza ProGuard, añada lo siguiente al archivo de configuración para evitar que advertencias incorrectas impidan compilar:

-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.**{*;}

            
Este bloque de código se muestra en una ventana flotante

Si utiliza AndResGuard, añada su lista de permitidos al archivo de configuración de ofuscación.

"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*"

            
Este bloque de código se muestra en una ventana flotante

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Probar el canal Huawei

  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca AppID y AppSecret y haga clic en Guardar.

alt text 2. Finalice el proceso de la app y envíe una notificación push. Si la recibe, el canal del fabricante se ha integrado correctamente.

Guía de integración del canal Meizu

Configurar compatibilidad con mavenCentral

Configure mavenCentral en el archivo Gradle principal de la raíz del proyecto. Los proyectos nuevos ya lo admiten de forma predeterminada.

Groovy (build.gradle):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

Añada el siguiente código al bloque dependencies del archivo Gradle del módulo de la app:

Groovy (build.gradle):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:meizu:5.x.x' // Desde el SDK 5.2.0, Meizu requiere "com.engagelab.plugin:meizu_th_push". No se necesita en versiones anteriores a 5.2.0 // La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:meizu_th_push:5.x.x' // Añada esta línea a partir de v5.2.0 }
              
              dependencies {
  //La versión del canal del fabricante debe coincidir con la del SDK AppPush
  implementation 'com.engagelab.plugin:meizu:5.x.x'
  // Desde el SDK 5.2.0, Meizu requiere "com.engagelab.plugin:meizu_th_push". No se necesita en versiones anteriores a 5.2.0
  // La versión del canal del fabricante debe coincidir con la del SDK AppPush
  implementation 'com.engagelab.plugin:meizu_th_push:5.x.x' //  Añada esta línea a partir de v5.2.0
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:meizu:5.x.x") // Desde el SDK 5.2.0, Meizu requiere "com.engagelab.plugin:meizu_th_push". No se necesita en versiones anteriores a 5.2.0 // La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:meizu_th_push:5.x.x") // Añada esta línea a partir de v5.2.0 }
              
              dependencies {
    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:meizu:5.x.x")
    // Desde el SDK 5.2.0, Meizu requiere "com.engagelab.plugin:meizu_th_push". No se necesita en versiones anteriores a 5.2.0
    // La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:meizu_th_push:5.x.x") //  Añada esta línea a partir de v5.2.0
}

            
Este bloque de código se muestra en una ventana flotante

Configurar parámetros

Añada el siguiente código al bloque defaultConfig del archivo Gradle del módulo de la app:

Los parámetros de Meizu deben llevar el prefijo "MZ-".

Groovy (build.gradle):

manifestPlaceholders = [ // Configurar las variables de manifest.xml MEIZU_APPKEY : "MZ-SU_APPKEY_MEIZU", // appkey registrado en Meizu MEIZU_APPID : "MZ-SU_APPID_MEIZU", // appid registrado en Meizu ]
              
              manifestPlaceholders = [
     // Configurar las variables de manifest.xml
     MEIZU_APPKEY : "MZ-SU_APPKEY_MEIZU", // appkey registrado en Meizu
     MEIZU_APPID : "MZ-SU_APPID_MEIZU", // appid registrado en Meizu
]

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( // Configurar las variables de manifest.xml "MEIZU_APPKEY" to "MZ-SU_APPKEY_MEIZU", // appkey registrado en Meizu "MEIZU_APPID" to "MZ-SU_APPID_MEIZU" // appid registrado en Meizu ))
              
              manifestPlaceholders.putAll(mapOf(
    // Configurar las variables de manifest.xml
    "MEIZU_APPKEY" to "MZ-SU_APPKEY_MEIZU", // appkey registrado en Meizu
    "MEIZU_APPID" to "MZ-SU_APPID_MEIZU" // appid registrado en Meizu
))

            
Este bloque de código se muestra en una ventana flotante

Configurar la ofuscación de código

Si utiliza ProGuard, añada lo siguiente al archivo de configuración para evitar que advertencias incorrectas impidan compilar:

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

            
Este bloque de código se muestra en una ventana flotante

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Si el canal Meizu no obtiene el token, pruebe a deshabilitar R8 añadiendo android.enableR8 = false a gradle.properties.

Probar el canal Meizu

  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca AppKey, AppID y AppSecret y haga clic en Guardar. alt text

  2. Finalice el proceso de la app y envíe una notificación push. Si la recibe, el canal del fabricante se ha integrado correctamente.

Guía de integración del canal vivo

Configurar compatibilidad con mavenCentral

Configure mavenCentral en el archivo Gradle principal de la raíz del proyecto. Los proyectos nuevos ya lo admiten de forma predeterminada.

Groovy (build.gradle):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

Añada el siguiente código al bloque dependencies del archivo Gradle del módulo de la app:

Groovy (build.gradle):

dependencies{ //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:vivo:5.x.x' }
              
              dependencies{
    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation 'com.engagelab.plugin:vivo:5.x.x'
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:vivo:5.x.x") }
              
              dependencies {
    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:vivo:5.x.x")
}

            
Este bloque de código se muestra en una ventana flotante

Configurar parámetros

Añada el siguiente código al bloque defaultConfig del archivo Gradle del módulo de la app:

Groovy (build.gradle):

manifestPlaceholders=[ VIVO_APPKEY : "SU_APPKEY_VIVO", // appkey registrado en vivo VIVO_APPID : "SU_APPID_VIVO", // appid registrado en vivo ]
              
              manifestPlaceholders=[
    VIVO_APPKEY : "SU_APPKEY_VIVO", // appkey registrado en vivo
    VIVO_APPID : "SU_APPID_VIVO", // appid registrado en vivo
]

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( "VIVO_APPKEY" to "SU_APPKEY_VIVO", // appkey registrado en vivo "VIVO_APPID" to "SU_APPID_VIVO" // appid registrado en vivo ))
              
              manifestPlaceholders.putAll(mapOf(
    "VIVO_APPKEY" to "SU_APPKEY_VIVO", // appkey registrado en vivo
    "VIVO_APPID" to "SU_APPID_VIVO" // appid registrado en vivo
))

            
Este bloque de código se muestra en una ventana flotante

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Configurar la ofuscación de código

Si utiliza ProGuard, añada lo siguiente al archivo de configuración para evitar que advertencias incorrectas impidan compilar:

-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.**{*; }

            
Este bloque de código se muestra en una ventana flotante

Probar el canal vivo

  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca AppKey, AppID y AppSecret y haga clic en Guardar.

alt text 2. Finalice el proceso de la app y envíe una notificación push. Si la recibe, el canal del fabricante se ha integrado correctamente.

Si la app aún no está publicada en vivo, añada dispositivos de prueba en su plataforma de push. Las pruebas solo pueden enviarse mediante la API, especificando el parámetro push_mode.

Insignias de vivo

Antes de utilizar insignias en el canal vivo, solicite a vivo el permiso correspondiente para la app. Si no está habilitado, enviar add_badge puede devolver el código de error 10089.

{ "options": { "third_party_channel": { "vivo": { "add_badge": true } } } }
              
              {
  "options": {
    "third_party_channel": {
      "vivo": {
        "add_badge": true
      }
    }
  }
}

            
Este bloque de código se muestra en una ventana flotante

Las notificaciones locales de EngageLab y MTPushPrivatesApi.setNotificationBadge/resetNotificationBadge también admiten las insignias del sistema vivo. El SDK declara los permisos necesarios para Funtouch OS y OriginOS; el resultado depende de la versión del sistema, la configuración de insignias del escritorio y los permisos de vivo.

"options": { "classification": 1, "third_party_channel": { "vivo": { "pushMode": 1, //Opcional, añadido el 2020/09/21. Corresponde a pushMode de vivo: entero 0 para producción, 1 para pruebas; el valor predeterminado es 0 "distribution_new": "pns_mtpush" } } }
              
               "options": {
    "classification": 1,
    "third_party_channel": {
        "vivo": {
            "pushMode":  1, //Opcional, añadido el 2020/09/21. Corresponde a pushMode de vivo: entero 0 para producción, 1 para pruebas; el valor predeterminado es 0
            "distribution_new": "pns_mtpush"
        }
    }
}

            
Este bloque de código se muestra en una ventana flotante

Guía de integración del canal OPPO

Configurar compatibilidad con mavenCentral

Configure mavenCentral en el archivo Gradle principal de la raíz del proyecto. Los proyectos nuevos ya lo admiten de forma predeterminada.

Groovy (build.gradle):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

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

allprojects {
    repositories {
        mavenCentral()
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

Añada el siguiente código al bloque dependencies del archivo Gradle del módulo de la app:

Groovy (build.gradle):

dependencies{ //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:oppo:5.x.x' implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' //OPPO requiere todas las dependencias siguientes 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 versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation 'com.engagelab.plugin:oppo:5.x.x'
    implementation 'com.engagelab.plugin:oppo_th_push:5.x.x'

    //OPPO requiere todas las dependencias siguientes
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'commons-codec:commons-codec:1.6'
    implementation 'androidx.annotation:annotation:1.1.0'
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:oppo:5.x.x") implementation("com.engagelab.plugin:oppo_th_push:5.x.x") //OPPO requiere todas las dependencias siguientes 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 versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:oppo:5.x.x")
    implementation("com.engagelab.plugin:oppo_th_push:5.x.x")

    //OPPO requiere todas las dependencias siguientes
    implementation("com.google.code.gson:gson:2.10.1")
    implementation("commons-codec:commons-codec:1.6")
    implementation("androidx.annotation:annotation:1.1.0")
}

            
Este bloque de código se muestra en una ventana flotante

Configurar parámetros

Añada el siguiente código al bloque defaultConfig del archivo Gradle del módulo de la app:

Los parámetros de OPPO deben llevar el prefijo "OP-".

Groovy (build.gradle):

manifestPlaceholders=[ OPPO_APPKEY : "OP-SU_APPKEY_OPPO", // appkey registrado en OPPO OPPO_APPID : "OP-SU_APPID_OPPO", // appid registrado en OPPO OPPO_APPSECRET: "OP-SU_APPSECRET_OPPO"//appsecret registrado en OPPO ]
              
              manifestPlaceholders=[
    OPPO_APPKEY : "OP-SU_APPKEY_OPPO", // appkey registrado en OPPO
    OPPO_APPID : "OP-SU_APPID_OPPO", // appid registrado en OPPO
    OPPO_APPSECRET: "OP-SU_APPSECRET_OPPO"//appsecret registrado en OPPO
]

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( "OPPO_APPKEY" to "OP-SU_APPKEY_OPPO", // appkey registrado en OPPO "OPPO_APPID" to "OP-SU_APPID_OPPO", // appid registrado en OPPO "OPPO_APPSECRET" to "OP-SU_APPSECRET_OPPO" // appsecret registrado en OPPO ))
              
              manifestPlaceholders.putAll(mapOf(
    "OPPO_APPKEY" to "OP-SU_APPKEY_OPPO", // appkey registrado en OPPO
    "OPPO_APPID" to "OP-SU_APPID_OPPO", // appid registrado en OPPO
    "OPPO_APPSECRET" to "OP-SU_APPSECRET_OPPO" // appsecret registrado en OPPO
))

            
Este bloque de código se muestra en una ventana flotante

Configurar la ofuscación de código

Si utiliza ProGuard, añada lo siguiente al archivo de configuración para evitar que advertencias incorrectas impidan compilar:

-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.** { *; }

            
Este bloque de código se muestra en una ventana flotante

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Probar el canal OPPO

  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca AppKey, AppID, AppSecret y MasterSecret y haga clic en Guardar.

alt text 2. Finalice el proceso de la app y envíe una notificación push. Si la recibe, el canal del fabricante se ha integrado correctamente.

Si la app no está publicada, solicite permisos de prueba de push en la plataforma abierta de OPPO. Cada app puede enviar 1000 mensajes del canal público al día.

Insignias de OPPO

Antes de utilizar insignias en el canal OPPO, solicite a OPPO el permiso de insignias numéricas del escritorio. Sin este permiso, la solicitud al fabricante puede completarse, pero la insignia no tendrá efecto.

{ "options": { "third_party_channel": { "oppo": { "badge_operation_type": 1 } } } }
              
              {
  "options": {
    "third_party_channel": {
      "oppo": {
        "badge_operation_type": 1
      }
    }
  }
}

            
Este bloque de código se muestra en una ventana flotante
  • badge_operation_type=1: incrementa la insignia en 1; puede omitir badge_message_count.
  • badge_operation_type=0: reemplaza la insignia por badge_message_count; el valor 0 la borra.
  • Las insignias de OPPO se procesan en los servidores del fabricante. La app no necesita integrar código adicional de insignias en el cliente.

Guía de integración del canal FCM

Configurar compatibilidad con mavenCentral

Configure mavenCentral y la dependencia de google-services en el archivo Gradle principal de la raíz del proyecto.

Groovy (build.gradle):

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" }
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

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

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

            
Este bloque de código se muestra en una ventana flotante

Añadir el complemento de FCM

Añada la línea apply plugin al final del archivo build.gradle del módulo de la app para habilitar el complemento de Gradle:

Groovy (build.gradle):

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

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

plugins { id("com.google.gms.google-services") }
              
              plugins {
    id("com.google.gms.google-services")
}

            
Este bloque de código se muestra en una ventana flotante

Configurar dependencias

Añada el siguiente código al bloque dependencies del archivo Gradle del módulo de la app:

Groovy (build.gradle):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:25.0.1' }
              
              dependencies {
    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation 'com.engagelab.plugin:google:5.x.x'
    implementation 'com.google.firebase:firebase-messaging:25.0.1'
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

dependencies { //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:google:5.x.x") implementation("com.google.firebase:firebase-messaging:25.0.1") }
              
              dependencies {
    //La versión del canal del fabricante debe coincidir con la del SDK AppPush
    implementation("com.engagelab.plugin:google:5.x.x")
    implementation("com.google.firebase:firebase-messaging:25.0.1")
}

            
Este bloque de código se muestra en una ventana flotante

Añada el siguiente código al bloque android del archivo Gradle del módulo de la app:

Groovy (build.gradle):

android { // google push need java 1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
              
              android {
    // google push need java 1.8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

android { // google push need java 1.8 compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }
              
              android {
    // google push need java 1.8
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar el archivo google-services.json

Consulte Guía para solicitar parámetros de los canales de fabricantes para obtener el archivo google-services.json y colocarlo en el directorio app.

alt text

Configurar el icono de las notificaciones FCM

Añada la siguiente configuración a AndroidManifest.xml para establecer el icono de las notificaciones FCM.

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/su_icono_de_notificacion" />
              
              <meta-data android:name="com.google.firebase.messaging.default_notification_icon"
     android:resource="@drawable/su_icono_de_notificacion" />

            
Este bloque de código se muestra en una ventana flotante

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Probar el canal FCM

  1. Requisitos previos para las pruebas
  • El teléfono debe contar con Google Play Services 17.3.4 o posterior.
  • Para las pruebas, utilice una VPN con un nodo fuera de China y asegúrese de que el teléfono pueda acceder a Google.
  • En teléfonos destinados al mercado chino, mantenga la app en segundo plano durante la prueba sin cerrarla. Las modificaciones del sistema de estos fabricantes pueden finalizar el proceso al cerrar la app en segundo plano.
  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca App Secret y haga clic en Guardar. alt text

  2. Si realiza las pruebas en China, configure el código de país después de la inicialización.

Java:

public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); MTCorePrivatesApi.configDebugMode(this, true); // Configurar el código de país; no configurarlo en producción MTGlobal.setCountryCode("US"); // Inicializar MTPushPrivatesApi.init(this); } }
              
              public class ExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        MTCorePrivatesApi.configDebugMode(this, true);

        // Configurar el código de país; no configurarlo en producción
        MTGlobal.setCountryCode("US");

        // Inicializar
        MTPushPrivatesApi.init(this);

    }
}

            
Este bloque de código se muestra en una ventana flotante

Kotlin:

class ExampleApplication : Application() { override fun onCreate() { super.onCreate() MTCorePrivatesApi.configDebugMode(this, true) // Configurar el código de país; no configurarlo en producción MTGlobal.setCountryCode("US") // Inicializar MTPushPrivatesApi.init(this) } }
              
              class ExampleApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        MTCorePrivatesApi.configDebugMode(this, true)

        // Configurar el código de país; no configurarlo en producción
        MTGlobal.setCountryCode("US")

        // Inicializar
        MTPushPrivatesApi.init(this)
    }
}

            
Este bloque de código se muestra en una ventana flotante
  1. Consulte el registro de push en la consola de AppPush para comprobar si se utilizó el canal FCM o EngageLab.

alt text

Guía de integración del canal Honor

Configurar compatibilidad con mavenCentral

Configure mavenCentral en el archivo Gradle principal de la raíz del proyecto. Los proyectos nuevos ya lo admiten de forma predeterminada.

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

allprojets {
    repositories {
        ...
        mavenCentral()
        ...
    }
}

            
Este bloque de código se muestra en una ventana flotante

Configurar parámetros y dependencias

Añada el siguiente código a build.gradle del módulo del proyecto:

Groovy (build.gradle):

defaultConfig { ... manifestPlaceholders = [ ... HONOR_APPID : "SU_APP_ID_HONOR", // APP ID registrado en Honor ... ] ... } dependencies { ... //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation 'com.engagelab.plugin:honor:5.x.x' implementation 'com.engagelab.plugin:honor_th_push:5.x.x' ... }
              
                defaultConfig {
        ...
        manifestPlaceholders = [
               ...
               HONOR_APPID : "SU_APP_ID_HONOR", // APP ID registrado en Honor
               ...
        ]
        ...
    }
  dependencies {
        ...
        //La versión del canal del fabricante debe coincidir con la del SDK AppPush
        implementation 'com.engagelab.plugin:honor:5.x.x'
        implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
        ...
  }

            
Este bloque de código se muestra en una ventana flotante

Kotlin DSL (build.gradle.kts):

defaultConfig { // ... manifestPlaceholders.putAll(mapOf( // ... "HONOR_APPID" to "SU_APP_ID_HONOR", // APP ID registrado en Honor // ... )) // ... } dependencies { // ... //La versión del canal del fabricante debe coincidir con la del SDK AppPush implementation("com.engagelab.plugin:honor:5.x.x") implementation("com.engagelab.plugin:honor_th_push:5.x.x") // ... }
              
                defaultConfig {
        // ...
        manifestPlaceholders.putAll(mapOf(
            // ...
            "HONOR_APPID" to "SU_APP_ID_HONOR", // APP ID registrado en Honor
            // ...
        ))
        // ...
    }
  dependencies {
        // ...
        //La versión del canal del fabricante debe coincidir con la del SDK AppPush
        implementation("com.engagelab.plugin:honor:5.x.x")
        implementation("com.engagelab.plugin:honor_th_push:5.x.x")
        // ...
  }

            
Este bloque de código se muestra en una ventana flotante

Configurar el certificado de firma

Configure en build.gradle la firma correspondiente a la huella del certificado registrada en la consola de Honor.

  • Los servicios de Honor requieren que la app esté firmada para registrarla correctamente.
  • Puede obtener la huella del certificado en el terminal con keytool -list -v -keystore <ruta_absoluta_del_archivo_de_firma>.
  • Si no dispone del archivo de firma o de la contraseña, puede obtener la huella con keytool -list -printcert -jarfile <ruta_absoluta_del_archivo_apk>.

Comprobar el resultado de la integración

Si la integración es correcta, el registro mostrará lo siguiente:

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
}

            
Este bloque de código se muestra en una ventana flotante

Configurar la ofuscación de código

Si utiliza ProGuard, añada lo siguiente al archivo de configuración para evitar que advertencias incorrectas impidan compilar:

-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.**{*;}

            
Este bloque de código se muestra en una ventana flotante

Probar el canal Honor

  1. Abra Consola de EngageLab > AppPush > Configuración básica > Configuración de integración. Introduzca App ID, Client ID, Client Secret y App Secret y haga clic en Guardar.

alt text

  1. Finalice el proceso de la app y envíe una notificación push. Si la recibe, el canal del fabricante se ha integrado correctamente.

Enviar mensajes por canales de fabricantes con EngageLab sin integrar sus SDK

/** * Informar de la llegada de una notificación del canal del fabricante * * Enviar mediante HTTP/HTTPS * * @param context No puede ser nulo * @param messageId ID de mensaje de EngageLab; no puede ser nulo * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId ID del mensaje del fabricante; puede ser nulo */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Informar de la llegada de una notificación del canal del fabricante
     *
     * Enviar mediante HTTP/HTTPS
     *
     * @param context           No puede ser nulo
     * @param messageId         ID de mensaje de EngageLab; no puede ser nulo
     * @param platform          Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param platformMessageId ID del mensaje del fabricante; puede ser nulo
     */
    public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
Este bloque de código se muestra en una ventana flotante
/** * Informar de un clic en una notificación del canal del fabricante * * Enviar mediante HTTP/HTTPS * * @param context No puede ser nulo * @param messageId ID de mensaje de EngageLab; no puede ser nulo * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId ID del mensaje del fabricante; puede ser nulo */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Informar de un clic en una notificación del canal del fabricante
     *
     * Enviar mediante HTTP/HTTPS
     *
     * @param context           No puede ser nulo
     * @param messageId         ID de mensaje de EngageLab; no puede ser nulo
     * @param platform          Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
     * @param platformMessageId ID del mensaje del fabricante; puede ser nulo
     */
    public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
Este bloque de código se muestra en una ventana flotante
/** * Informar de la eliminación de una notificación del canal del fabricante * * Enviar mediante HTTP/HTTPS * * @param context No puede ser nulo * @param messageId ID de mensaje de EngageLab; no puede ser nulo * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId ID del mensaje del fabricante; puede ser nulo */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Informar de la eliminación de una notificación del canal del fabricante
     *
     * Enviar mediante HTTP/HTTPS
     *
     * @param context           No puede ser nulo
     * @param messageId         ID de mensaje de EngageLab; no puede ser nulo
     * @param platform          Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
     * @param platformMessageId ID del mensaje del fabricante; puede ser nulo
     */
    public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
Este bloque de código se muestra en una ventana flotante
/** * Informar de la apertura de una notificación del canal del fabricante * * Enviar mediante HTTP/HTTPS * * @param context No puede ser nulo * @param messageId ID de mensaje de EngageLab; no puede ser nulo * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId ID del mensaje del fabricante; puede ser nulo */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * Informar de la apertura de una notificación del canal del fabricante
     *
     * Enviar mediante HTTP/HTTPS
     *
     * @param context           No puede ser nulo
     * @param messageId         ID de mensaje de EngageLab; no puede ser nulo
     * @param platform          Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
     * @param platformMessageId ID del mensaje del fabricante; puede ser nulo
     */
    public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
Este bloque de código se muestra en una ventana flotante
/** * Enviar el token del fabricante * * Llame después de establecer la conexión persistente de EngageLab; de lo contrario no tendrá efecto. La conexión está establecida cuando MTCommonReceiver.onConnectStatus devuelve true. * * Enviar mediante TCP * * @param context No puede ser nulo * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param token Token devuelto por el fabricante; no puede ser nulo */ public static void uploadPlatformToken(Context context, byte platform, String token, String region)
              
                  /**
     * Enviar el token del fabricante
     *
     * Llame después de establecer la conexión persistente de EngageLab; de lo contrario no tendrá efecto. La conexión está establecida cuando MTCommonReceiver.onConnectStatus devuelve true.
     *
     * Enviar mediante TCP
     *
     * @param context  No puede ser nulo
     * @param platform Fabricante; valores permitidos(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
     * @param token    Token devuelto por el fabricante; no puede ser nulo
     */
    public static void uploadPlatformToken(Context context, byte platform, String token, String region)

            
Este bloque de código se muestra en una ventana flotante

region: Marcador de región asociado al token del fabricante; pase null si no se distinguen regiones.

Plantillas de Xiaomi e insignias de OPPO/vivo

El canal Xiaomi admite template_id y template_param. template_param puede estar vacío; en caso contrario, cada valor debe ser una cadena no vacía de 1 a 128 caracteres, sin emoji, Unicode Other Symbol ni Unicode sin asignar. En OPPO, badge_operation_type=1 incrementa uno; el tipo 0 sustituye el valor por badge_message_count no negativo y 0 lo borra. Se requiere permiso de insignia numérica de escritorio de OPPO. El canal vivo usa add_badge=true; las notificaciones locales y setNotificationBadge/resetNotificationBadge también admiten vivo, según el sistema, el lanzador y los permisos del fabricante.

Icon Solid Transparent White Qiyu
Contactar con ventas