Guía de integración del SDK
Consejos de uso
Este documento es la guía de integración estándar del SDK de EngageLab para HarmonyOS. Se utiliza para orientar sobre el uso del SDK. De forma predeterminada, se asume que el lector ya está familiarizado con el uso básico de DevEco Studio y cuenta con ciertos conocimientos de programación en HarmonyOS.
La versión del SDK de EngageLab para HarmonyOS a la que corresponde esta guía es: 1.0.0 y versiones posteriores.
- Actualmente se admite HarmonyOS API 12 y versiones posteriores.
Descripción de las funcionalidades del producto
EngageLab Push (engagelab) es un servicio de notificaciones push de extremo a extremo que permite entregar puntualmente mensajes del servidor a los dispositivos de los usuarios finales, lo que ayuda a los desarrolladores a mantener activamente la conexión con los usuarios, incrementando así la actividad de los usuarios y la retención de la aplicación. El cliente de EngageLab Push admite múltiples plataformas: Android, iOS, HarmonyOS y QuickApp.
Este SDK para HarmonyOS facilita a los desarrolladores, basándose en EngageLab, la incorporación rápida de funcionalidades push a aplicaciones HarmonyOS.
Funcionalidades principales
- Mantener una conexión persistente con el servidor para que los mensajes puedan entregarse al cliente en tiempo real.
- Recibir notificaciones y transferir al desarrollador de la app la información relacionada.
Características principales
- La conexión mantenida por el cliente consume pocos recursos y baja energía.
- Interfaces ricas del SDK, que permiten personalizar el estilo de aviso en la barra de notificaciones.
- Servidores con gran capacidad y alta estabilidad.
Método de integración
Integración automática
Dependencia har
Descripción: Añadir en el archivo oh-package.json5 del módulo entry
"dependencies": {
"@engagelab/push": "x.x.x" // Enter the corresponding version number, for example: "@engagelab/push": "1.0.0"
}
Descripción 2: Actualmente, har es bytecode, por lo que se debe actualizar el IDE a 5.0.3.500 o superior y, en el archivo build-profile.json5 a nivel de proyecto (nivel superior/exterior), configurar "useNormalizedOHMUrl": true
"products": [
{
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true // Enable
}
},
"name": "default",
"signingConfig": "default",
"compileSdkVersion": "5.0.0(12)",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS"
}
]
Integración manual
Enlace de descarga del paquete comprimido de integración: Ir a descargar; contenido del paquete comprimido de integración
Contenido del paquete comprimido de integración engagelab-hmos-x.x.x-release.zip
- engagelab-hmos-x.x.x-release.har
- Paquete principal de los servicios para desarrolladores de EngageLab.
- doc
- Documentación
- entry
- Código de un proyecto demo de hmos.
Integración del archivo har
- Descomprimir el paquete comprimido de integración engagelab-hmos-x.x.x-release.zip.
- Copiar engagelab-hmos-x.x.x-release.har en el directorio entry/hars/ de su proyecto.
Descripción: Asociar engagelab-hmos-x.x.x-release.har. Por ejemplo, si se copia el har en el directorio entry/hars/, añadir en el archivo oh-package.json5 del módulo entry:
"dependencies": {
"jg_harmony_har": "./hars/engagelab-hmos-x.x.x-release.har" // This path corresponds to where engagelab-hmos-x.x.x-release.har is stored
}
Descripción 2: Actualmente, har es bytecode, por lo que se debe actualizar el IDE a 5.0.3.500 o superior y, en el archivo build-profile.json5 a nivel de proyecto, configurar "useNormalizedOHMUrl": true
"products": [
{
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true // Enable
}
},
"name": "default",
"signingConfig": "default",
"compileSdkVersion": "5.0.0(12)",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS"
}
]
Configurar la información de la plataforma hmos
Para utilizar la funcionalidad push, se debe configurar la información de la plataforma HarmonyOS.
Los pasos principales son:
Obtener en la plataforma hmos el client_id correspondiente a la aplicación del proyecto.
Habilitar el servicio push en la plataforma hmos.
Configurar localmente el client_id de la aplicación.
"module": { "metadata": [ { "name": "client_id", "value": "YOUR_ID" } ] }"module": { "metadata": [ { "name": "client_id", "value": "YOUR_ID" } ] }Este bloque de código se muestra en una ventana flotanteConfigurar la firma
- Paso 3: Solicitar el Perfil de publicación; el formato del Profile es .p7b
Configurar la información de la plataforma EngageLab
- Crear una aplicación en la plataforma EngageLab y asegurarse de que coincidan el nombre del paquete y el appKey.
{
"app": {
"bundleName": "YOUR_BUNDLE_NAME"
}
}
export default class MyAbilityStage extends AbilityStage {
onCreate() {
EPushInterface.setAppKey("YOUR_APPKEY") // Call before init
}
}
export default class MyAbilityStage extends AbilityStage {
onCreate() {
EPushInterface.setCallBackMsg(YourCallBackMsgClass) // Receive callback info, call before init
}
}
Configurar la página de destino de la redirección de la notificación
"url": "YOUR_SCHEME://YOUR_HOST:YOUR_PORT/YOUR_PATH"
"actions": ["YOUR_ACTIONS"]
Solicitar habilitar el interruptor de notificaciones
- Introducir el valor correspondiente.
Configurar información personalizada
if (jg) { // If true, it has already been processed
return
}
Configurar mensajes de extensión de notificación
- Completar la lógica de locución según el negocio.
return {} // If you want to modify the notification, you can return an object with data
Habilitar la funcionalidad de negocio push
export default class MyAbilityStage extends AbilityStage {
onCreate() {
EPushInterface.setCallBackMsg(YourCallBackMsgClass) // Call before init
EPushInterface.setAppKey("YOUR_APPKEY") // Call before init
EPushInterface.init(this.context.getApplicationContext())
}
}
Configurar permisos
"abilities": [
"EntryAbility" // Usually the main page is used
]
atManager.requestPermissionsFromUser(context, permissions).then((data) => {
// Authorization granted, then enable push business
EPushInterface.init(this.context.getApplicationContext())
})
Funciones avanzadas
Recomendación para obtener el Registration ID
Código de ejemplo:
EPushInterface.getRegistrationID();
