logoDocumentación
Buscar

API del Web SDK

Autenticación

Cuando el desarrollador realiza la inicialización, debe proporcionar la información necesaria. Esta estructura de datos la genera el servidor del desarrollador y se envía al navegador; se utiliza para la inicialización de MTpush, mediante la cual el desarrollador autoriza al navegador a ejecutarse. Los desarrolladores deben garantizar que todos los usuarios que puedan llamar para obtener estos datos sean usuarios legítimos.

Estructura de datos de inicialización

interface MTInitInfo { website_push_id: string; code: number; master_secret: string; passwd: string; pull: number; regid: string; sess: string; tagalias: number; uid: number; vapid_pubkey: string; } type dataType = { code: number, content: string, message: string, }; interface InitType { appkey: string; //The appkey of the application registered on the URORA platform by the developer, required user_str: string; //Unique identifier for the user, required swUrl?: string; //Default "/sw.min." + sdkEnv.version + ".js" debugMode?: boolean; //Default false webSocketUrl?: string; //If not provided, baseUrl will be used fail?: (data: dataType | undefined) => void; //Callback for initialization failure success?: (data: dataType | undefined) => void; //Callback for successful initialization webPushcallback?: def; canGetInfo?: (d: MTInitInfo) => void; custom?: (Callback: () => void) => void; //Callback for custom prompt availability, call Callback after operation to apply maCompletion?: (code: number, msg: string) => void; //Callback for ma-sdk initialization completion openUrl?: string; // Enlace de redirección al hacer clic en una notificación encodeSwUrl?: boolean; // Si se debe codificar swUrl regidSearchPath?: string; // Ruta de la página para consultar el Registration ID }
              
              interface MTInitInfo {
  website_push_id: string;
  code: number;
  master_secret: string;
  passwd: string;
  pull: number;
  regid: string;
  sess: string;
  tagalias: number;
  uid: number;
  vapid_pubkey: string;
}

type dataType = {
  code: number,
  content: string,
  message: string,
};

interface InitType {
  appkey: string; //The appkey of the application registered on the URORA platform by the developer, required
  user_str: string; //Unique identifier for the user, required
  swUrl?: string; //Default "/sw.min." + sdkEnv.version + ".js"
  debugMode?: boolean; //Default false
  webSocketUrl?: string; //If not provided, baseUrl will be used
  fail?: (data: dataType | undefined) => void; //Callback for initialization failure
  success?: (data: dataType | undefined) => void; //Callback for successful initialization
  webPushcallback?: def;
  canGetInfo?: (d: MTInitInfo) => void;
  custom?: (Callback: () => void) => void; //Callback for custom prompt availability, call Callback after operation to apply
  maCompletion?: (code: number, msg: string) => void; //Callback for ma-sdk initialization completion
  openUrl?: string; // Enlace de redirección al hacer clic en una notificación
  encodeSwUrl?: boolean; // Si se debe codificar swUrl
  regidSearchPath?: string; // Ruta de la página para consultar el Registration ID
}

            
Este bloque de código se muestra en una ventana flotante
  • Descripción de parámetros:
    • openUrl: URL que se abre al hacer clic en una notificación
      • Si no se especifica URL al enviar la notificación, se usa este valor como enlace de redirección;
      • Si no se define, por defecto se redirige al dominio de integración;
      • En integración multi-dominio, este parámetro permite redirigir a la URL correspondiente;
    • encodeSwUrl: Si se debe codificar swUrl
      • Útil cuando swUrl contiene caracteres especiales (p. ej. @) y el servidor restringe el acceso a esa URL, lo que puede hacer fallar el registro del Service Worker; añadir mecanismo de re-registro y codificar swUrl en los reintentos.
    • regidSearchPath: Ruta de la página para consultar el Registration ID; por defecto /engagelab/regid. Ver Guía de consulta del Registration ID.

Solo se puede registrar un service worker dentro del mismo ámbito (scope). Cuando, al informar de una inicialización correcta, se muestre un error similar a "Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker", se deben comprobar posibles conflictos con otros service workers. Es posible que sea necesario fusionar los service workers o resolver el ámbito (scope) del service worker.

Inicialización del SDK

Descripción de la interfaz

Inicializar la interfaz.

window.MTpushInterface.init(Object:InitType)
              
              window.MTpushInterface.init(Object:InitType)

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

Descripción de parámetros

Nombre del parámetro Tipo de parámetro Descripción del parámetro
code number Código devuelto; 0 significa éxito, otros valores indican fallo; consulte el código de error
message string Descripción del resultado
content string Devuelve el mensaje de error si el registro falla con el código 1003

Ejemplo de llamada

MTpushInterface.init({ appkey: "xxx", user_str: "adminDemo", fail(data) { console.log("Failed to create online push", data); }, success(data) { console.log("Online push created successfully", data); }, webPushcallback(cod, tip) { console.log("The status code and prompt the user gets", code, tip); }, //swUrl?: string; //default "/sw.min." + sdkEnv.version + ".js" canGetInfo(d) { //At this time, you can get the RegId or get all the data in d console.log("Get RegId", MTpushInterface.getRegistrationID(), d); // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" }); }, custom: (reqPermission) => { //When using a custom prompt configuration, you must call reqPermission to request and configure permissions. document.getElementById("xx")?.addEventListener("click", reqPermission); }, });
              
              MTpushInterface.init({
   appkey: "xxx",
   user_str: "adminDemo",
   fail(data) {
     console.log("Failed to create online push", data);
   },
   success(data) {
     console.log("Online push created successfully", data);
   },
   webPushcallback(cod, tip) {
     console.log("The status code and prompt the user gets", code, tip);
   },
   //swUrl?: string; //default "/sw.min." + sdkEnv.version + ".js"
   canGetInfo(d) {
     //At this time, you can get the RegId or get all the data in d
     console.log("Get RegId", MTpushInterface.getRegistrationID(), d);
     // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" });
   },
   custom: (reqPermission) => {
    //When using a custom prompt configuration, you must call reqPermission to request and configure permissions.
    document.getElementById("xx")?.addEventListener("click", reqPermission);
   },
});

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

Obtener RegistrationID

Descripción de la interfaz

Se debe llamar a esta API para obtener el RegistrationID correspondiente a la cuenta actual. El valor correspondiente solo se devuelve después de que la firma de inicialización sea correcta; de lo contrario, se devuelve una cadena vacía. Este método debe llamarse después de que se active el callback canGetInfo.

window.MTpushInterface.getRegistrationID()
              
              window.MTpushInterface.getRegistrationID()

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

Ejemplo de llamada

var rid = window.MTpushInterface.getRegistrationID();
              
              var rid = window.MTpushInterface.getRegistrationID();

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

Detener push

Se debe llamar a esta API para desconectar la conexión push persistente establecida con el backend y dejar de recibir mensajes push.

window.MTpushInterface.mtPush.stopPush()
              
              window.MTpushInterface.mtPush.stopPush()

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

Monitorización de mensajes push

Descripción de la interfaz

Se recomienda llamar al listener de mensajes antes de la inicialización.

window.MTpushInterface.onMsgReceive(fn)
              
              window.MTpushInterface.onMsgReceive(fn)

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

Descripción de parámetros

Nombre del parámetro Tipo de parámetro Descripción del parámetro
fn function Función de recepción y procesamiento de mensajes

Ejemplo de llamada

window.MTpushInterface.onMsgReceive(function (res) { if(res.type===0){ // res.data.messages[] // res.data.messages[].msg_id // res.data.messages[].title // res.data.messages[].content // res.data.messages[].extras }else{ // res.data.title } });
              
              window.MTpushInterface.onMsgReceive(function (res) {
   if(res.type===0){
    // res.data.messages[]
    // res.data.messages[].msg_id
    // res.data.messages[].title
    // res.data.messages[].content
    // res.data.messages[].extras
   }else{
    // res.data.title
   }
});

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

Datos devueltos

Nombre del parámetro Tipo de parámetro Descripción del parámetro
type number
  • 0: Mensaje del canal de Engagelab
  • 1: Mensaje del canal del sistema
  • data Object Contenido del mensaje

    Array de mensajes del canal de Engagelab (messages)

    Nombre del parámetro Tipo de parámetro Descripción del parámetro
    msg_id string ID del mensaje
    title string Título del mensaje
    content string Contenido del mensaje
    extras Object Campos adicionales del mensaje

    Datos de mensajes del canal del sistema

    Se admite la interfaz w3c NotificationOptions; para más información, consulte MDN Web Docs.

    Comprobar el estado del servicio push

    window.MTpushInterface.getPushAuthority()
                  
                  window.MTpushInterface.getPushAuthority()
    
                
    Este bloque de código se muestra en una ventana flotante

    La estructura de datos devuelta es la siguiente:

    { mtPush: { code:1, //1 is successful, -1 is in initialization, 0 is failed msg:'success' }, webPush: { code:1, // 0 webpush is not available (browser does not support it) 1 is available 2 permission is disabled 3 permission is not confirmed msg:'success' } }
                  
                  {
       mtPush: {
         code:1, //1 is successful, -1 is in initialization, 0 is failed
         msg:'success'
       },
       webPush: {
         code:1, // 0 webpush is not available (browser does not support it) 1 is available 2 permission is disabled 3 permission is not confirmed
         msg:'success'
       }
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Códigos de error del objeto WebPush

    code msg Observaciones
    0 The browser does not support the Notifications API El navegador no admite la API de notificaciones
    1 Notification permissions available, message subscription successful. Permisos de notificación disponibles; suscripción de mensajes correcta
    2 Notification permissions have been disabled, message subscription failed. Los permisos de notificación se han deshabilitado; la suscripción de mensajes ha fallado
    3 Notification permissions have not been confirmed, message subscription has not been performed. Los permisos de notificación no se han confirmado; no se ha realizado la suscripción de mensajes
    -1 The browser does not support Service Worker. El navegador no admite Service Worker
    -2 Service Worker does not support HTTP. Service Worker no admite el protocolo HTTP
    -3 Service Worker registration failed. Fallo en el registro de Service Worker
    -4 Notification permission is available, but message subscription failed. Los permisos de notificación están disponibles, pero la suscripción de mensajes ha fallado
    -5 Subscription has been canceled Se ha cancelado la suscripción

    Obtener permisos de notificación del navegador

    window.MTpushInterface.getWebPermission()
                  
                  window.MTpushInterface.getWebPermission()
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros devueltos

    • granted : Disponible
    • denied : Deshabilitado
    • default: Permiso no confirmado

    Informar datos de mensajes personalizados

    Si es necesario realizar estadísticas de datos de mensajes personalizados, utilice la interfaz de informe personalizado para enviar los datos.

    window.MTpushInterface.customClickReport('msg_id'); // msg_id is the msg_id of the custom message
                  
                  window.MTpushInterface.customClickReport('msg_id'); // msg_id is the msg_id of the custom message
    
                
    Este bloque de código se muestra en una ventana flotante

    Monitorización de desconexión

    Descripción de la interfaz

    Si se produce una desconexión después de una inicialización correcta, el SDK intentará automáticamente volver a conectarse y firmar.
    Se recomienda llamar a este listener de eventos antes de la inicialización y volver a llamar a la inicialización después de recibir este evento.

    window.MTpushInterface.mtPush.onDisconnect(fn)
                  
                  window.MTpushInterface.mtPush.onDisconnect(fn)
    
                
    Este bloque de código se muestra en una ventana flotante

    Ejemplo de llamada

    window.MTpushInterface.mtPush.onDisconnect(function () { });
                  
                  window.MTpushInterface.mtPush.onDisconnect(function () {
    });
    
                
    Este bloque de código se muestra en una ventana flotante

    Cancelar la suscripción del navegador

    Cancelar la suscripción a las notificaciones. Este método puede utilizarse cuando no se necesita recibir notificaciones al cerrar sesión en una cuenta o cuando el nivel de privacidad de algunas cuentas es alto.

    MTpushInterface.unSubscribe();
                  
                  MTpushInterface.unSubscribe();
    
                
    Este bloque de código se muestra en una ventana flotante

    Establecer TagsAlias

    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
                  
                  MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Nombre del parámetro Tipo de parámetro Descripción del parámetro
    tags string[] Obligatorio; la longitud máxima del array es 1000 y cada elemento tiene un máximo de 40 caracteres
    alias string Obligatorio; máximo 40 caracteres

    Descripción de la interfaz

    Los desarrolladores pueden establecer y eliminar etiquetas bajo un alias específico mediante esta interfaz. Esta interfaz utiliza una lógica de sobrescritura. Si se configura una cadena vacía, se pueden eliminar las etiquetas existentes.

    Visualización múltiple de indicaciones por categoría

    window.MTpushInterface.promptPushCategories();
                  
                  window.MTpushInterface.promptPushCategories();
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de la interfaz

    Tras suscribirse el usuario a las notificaciones push, los desarrolladores pueden mostrar las indicaciones por categoría varias veces según sea necesario. Esto debe llamarse después de que el SDK esté inicializado.

    Callback de visualización de mensajes push

    Descripción de la interfaz

    Se recomienda llamar al listener de mensajes antes de la inicialización.

    Ejemplo de llamada

    window.MTpushInterface.onMsgDisplay((msgData) => {});
                  
                  window.MTpushInterface.onMsgDisplay((msgData) => {});
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Descripción del parámetro de callback de mensajes de notificación msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; type: string; // 0: Engagelab channel message 1: System channel message }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      type: string; // 0: Engagelab channel message   1: System channel message
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción del parámetro de callback de mensajes in-app msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      type: string;
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Nota:

    1. En el modo de edición HTML para mensajes in-app, los parámetros de callback title y content son cadenas vacías.
    2. Los mensajes entregados a través del canal del sistema en el navegador Safari no pueden recibir callbacks de visualización.

    Callback de clic de mensajes push

    Descripción de la interfaz

    Se recomienda llamar al listener de mensajes antes de la inicialización.

    Ejemplo de llamada

    window.MTpushInterface.onMsgClick((msgData) => {});
                  
                  window.MTpushInterface.onMsgClick((msgData) => {});
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Descripción del parámetro de callback de mensajes de notificación msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; position: string; // Click position, 'msgBody' | Button ID type: string; // 0: Engagelab channel message 1: System channel message }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      position: string; // Click position, 'msgBody' | Button ID
      type: string; // 0: Engagelab channel message   1: System channel message
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción del parámetro de callback de mensajes in-app msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn'; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
      type: string;
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Nota:

    1. En el modo de edición HTML para mensajes in-app, el valor de position lo determina el desarrollador y los parámetros de callback title y content son cadenas vacías.
    2. Los mensajes entregados a través del canal del sistema en el navegador Safari no pueden recibir callbacks de clic.

    Código de error

    code message Observaciones
    0 success Llamada correcta
    1000 unknown error Error desconocido
    1001 initing , please try again later Inicializando; inténtelo de nuevo más tarde
    1002 invalid config Error en la configuración inicial
    1003 init failed La inicialización ha fallado; consulte la salida de la consola para obtener detalles
    1004 init timeout Tiempo de espera de inicialización agotado
    1005 network error Error de red; sin red o no se puede conectar a WebSocket
    1006 failed to get baseUrl and reportUrl La solicitud de la API get-webaddr ha fallado; consulte el campo content del callback para obtener detalles
    1007 authentication failed La autenticación ha fallado; consulte el campo content del callback para obtener detalles
    1008 region restricted Restricción regional
    Icon Solid Transparent White Qiyu
    Contacto