API de la extensión de Chrome del Web SDK
Inicializar el SDK
Descripción de la interfaz
Para evitar una gran cantidad de usuarios no válidos, se recomienda utilizar un user_str único y consistente durante la inicialización. Se puede generar user_str en función de la huella digital del navegador.
Ejemplo de llamada
if (window.MTpushInterfaceExtension) {
window.MTpushInterfaceExtension.initSdk({
appkey: '',
user_str: '',
});
}
Descripción de parámetros
interface InitType {
appkey: string; // The appkey of the application registered by the developer on the EngageLab platform. Required.
user_str: string; // Unique user identifier. Required.
}
Obtener resultados
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
// SDK initialization succeeded
case 'MTPUSH_INIT_SDK_SUCCESS':
console.log(message.data);
break;
// SDK initialization failed
case 'MTPUSH_INIT_SDK_FAIL':
console.log(message.data);
break;
}
});
La estructura de message.data es la siguiente:
interface MessageData {
code: number; // Status code. 0 indicates success, others indicate failure. Refer to error codes.
message: string; // Result description.
content: string; // Returns failure information when registration fails with error code 1003.
}
Si la integración de la extensión falla debido a una prueba gratuita caducada o a un plan de pago caducado para la aplicación, el proceso de inicialización se reintentará cuando se abra una nueva página o se actualice una página existente tras 4 horas.
Obtener RegistrationID
Descripción de la interfaz
No es necesario llamar manualmente a una API para obtener el regid. Tras inicializarse el SDK correctamente, se puede obtener el regid a partir de la información devuelta por el evento MTPUSH_GET_MT_INIT_INFO.
Ejemplo de llamada
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_MT_INIT_INFO':
console.log(message.data.regid);
break;
}
});
Resultado devuelto
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;
}
Detener notificaciones push
Descripción de la interfaz
Se debe llamar a esta API para desconectar la conexión push persistente establecida con el backend y dejar de recibir mensajes push.
Ejemplo de llamada
window.MTpushInterfaceExtension.stopPush();
Comprobar el estado del servicio push
Descripción de la interfaz
Recuperar la información de estado del servicio push.
Ejemplo de llamada
// Call after the SDK initializes successfully
window.MTpushInterfaceExtension.getPushAuthority();
// Listen for messages to get the push service status
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_PUSH_AUTHORITY':
console.log('Push service status: ', message.data);
break;
}
});
Resultado devuelto
{
"mtPush": {
"code": 1, // 1: Success, -1: Initializing, 0: Failure
"msg": "MTpush channel initialization successful!"
},
"webPush": {
"code": 1, // 0: Webpush unavailable (unsupported), 1: Available, 2: Unavailable
"msg": "Notification available"
}
}
Establecer etiquetas y alias
Descripción de la interfaz
Los desarrolladores pueden utilizar esta interfaz para establecer y eliminar etiquetas bajo un alias específico. Esta interfaz utiliza una lógica de sobrescritura. Si se configura una cadena vacía para tags, se eliminarán las etiquetas existentes.
Ejemplo de llamada
window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
Descripción de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| tags | string[] | Obligatorio. La longitud máxima del array es 1000. Cada elemento puede tener hasta 40 caracteres. |
| alias | string | Obligatorio. Máximo 40 caracteres. |
Resultado devuelto
Escuchar mensajes para obtener el resultado de la configuración de la interfaz:
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS':
console.log('Setting successful');
break;
case 'MTPUSH_SET_TAGS_ALIAS_FAIL':
console.log('Setting failed', message.data); // Failure information: string[]
break;
}
});
Informe de mensajes personalizados
Descripción de la interfaz
Si es necesario enviar informes de mensajes personalizados para estadísticas de datos, se debe utilizar esta interfaz de informe personalizado.
Ejemplo de llamada
window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id is the ID of the custom message
Callback de visualización de mensajes push
Descripción de la interfaz
Una vez completada la inicialización del SDK, se debe escuchar el evento MTPUSH_MSG_CALLBACK_DISPLAY para recibir la información de callback de visualización del mensaje push.
Ejemplo de uso
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_DISPLAY':
console.log(message.data);
break;
}
});
Descripción de parámetros
Descripción del parámetro de callback message.data:
{
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
}
Callback de clic de mensajes push
Descripción de la interfaz
Una vez completada la inicialización del SDK, se debe escuchar el evento MTPUSH_MSG_CALLBACK_CLICK para recibir la información de callback de clic del mensaje push.
Ejemplo de uso
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_CLICK':
console.log(message.data);
break;
}
});
Descripción de parámetros
{
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
}
Nota: en el canal de EngageLab, los parámetros
titleycontentdel callback de clic devolverán como máximo 30 caracteres.
Códigos de error
| Código | Mensaje | 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 | Configuración de inicialización no válida |
| 1003 | init failed | Error de inicialización. Consulte los registros 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 |
