Resumen del envío de Aurora

Escenarios de aplicación: en nuestro proyecto, utilizamos dos situaciones: crear videoconferencias y enviar notificaciones de mensajes de alerta temprana. Primero, creamos una videoconferencia e invitamos a personas a la reunión. Utilizo un mensaje push personalizado porque se pasan muchos parámetros en este escenario de aplicación. Después de la inserción, tanto Android como iOS pueden pasar parámetros fácilmente, pero consideramos que las personas invitadas solo pueden crear una sala de conferencias después de iniciar sesión. Usamos el SDK de videoconferencia de Tencent porque usa alias push. Cuando el usuario inicia sesión, Android establece el uuid del usuario como alias y cancela el alias cuando el usuario cierra la sesión. Utilizo alias para consultar el tamaño de la matriz de Registration_ids en el servidor si está vacía para determinar si el usuario actual tiene un alias establecido. Solo llamo a la interfaz para crear una sala de reuniones después de que todas las personas invitadas hayan configurado alias. Los mensajes de advertencia se envían a través de notificaciones. Cuando se activa la advertencia meteorológica, la enviaré a la aplicación mediante una notificación, lo cual es relativamente simple.

Aurora push sirve para enviar mensajes a la aplicación. Primero necesitamos integrar las dependencias de Maven en el servidor.

<! -Aurora Push-& gt;

& ltgroupId & gtcn.jpush.api

& ltartifactId & gtjpush-client

& ltVersion& gt3.2.3

& lt/dependency & gt;

Entonces necesitamos saber qué métodos de inserción tiene Jiguang Push, que son aplicables tanto a Android como a iOS. Utilicé alias push alias (y etiqueta push tag) en el proyecto. Los métodos de push se dividen en push de notificación y push personalizado. El cuadro de aviso del teléfono móvil puede mostrar notificaciones push, pero las notificaciones push personalizadas no. Creo que en Android puede aparecer un cuadro de diálogo como un vídeo de WeChat, que se ve muy bien. Esto es diferente de WeChat, puedes invitar a varias personas. Parece que solo puedo usar Alibaba Cloud uno a uno, así que lo cambié a videoconferencia Tencent. Bien, sin más preámbulos, pasemos a la siguiente clase de herramientas que escribí.

Paquete com.jpxx.homepage.homepage.service.utils;

Importar cliente cn.jpush.API.jpush;

Importar API cn.jpush. .push .push resultado;

Importar cn .jpush .modelo API .

p>

Importar cn .jpush .modelo de API . >Importar cn.jpush.modelo de API.

Importar cn. push . push payload builder;

Clase pública SendMessageUtils {

cadena estática privada apkey = " 8a 7880 c6fb 81ad 494 b 224078 ";

/ **

* j push master secret es la clave generada por la plataforma Jiguang push.

*/

private static StringMasterSecret = " c0fc 675 c 4c 48 f 9 BF 35269 cf 4 ";

// Complete los dos parámetros por separado. MasterSecret y appKey aplicados.

JPushClientjPushClient estático privado = nuevo JPushClient(secreto maestro, AppKey);

/**

*Notificación push

*Nota: Cuando el método push no está vacío, el valor enviado no puede estar vacío; cuando el método push está vacío, no es necesario enviar el valor.

* Modo de inserción de tipo @param: 1, inserción de "etiqueta", 2, inserción de "alias".

* @param valor la etiqueta o valor de alias enviado

* @param alerta contenido push

*/

public static StringpushNotice( Tipo de cadena, título de cadena, valor de cadena, alerta de cadena, int roomId, tipo de mensaje de cadena, nombre de cadena, promotor de cadenaAdavter, título de reunión de cadena, cadena sig){

constructor constructor = empujar carga útil();

builder . set platform(platform . all()); //Establece la plataforma aceptada. Todo funciona en todas las plataformas, incluidas Android, iOS y Microsoft.

//Establece el tiempo para guardar mensajes sin conexión cuando el usuario no está en línea.

opciones opciones = opciones . enviar no();

opciones . settimetolive(86400 l); //Establecer en 86400 y guardar por un día. ser salvo por un día.

builder.setOptions(opción);

builder.set mensaje(message.new builder()

.setMsgContent(valor)

. título

. addExtra("roomId", roomId)

addExtra("tipo de mensaje", tipo de mensaje)

. p>

. addExtra("promotorAdavter", promotorAdavter)

addExtra("título de la reunión", título de la reunión)

.build(). );

//Establecer modo de inserción

if(type . equals(" alias "){

builder . set audiencia(audiencia . alias(valor) ); //Enviar por alias

} else if(type . equals(" etiqueta "){

constructor . set audiencia (audiencia . etiqueta(valor)); //Enviar por etiqueta

} De lo contrario {

builder set audiencia(audience . all()); // La audiencia está configurada para todos, indica que es una transmisión push y se puede recibir. por todos los usuarios

}

//Configurar para enviar mensajes a través de notificaciones.

constructor .set notificación(notificación . alerta(alerta));

empujar carga útil = constructor

sistema. (" ggggggg "+carga útil de inserción);

Pruebe {

//Push, la inserción real se realiza en este paso.

//system . out . println(" zzzzzzzzz "+jpushclient . enviar push(push payload));

push result push result = jpushclient .

Devuelve "éxito";

}catch(excepción e){

system out . println(" excepción "+e);

e. printstacktrace();

devuelve "fallo";

}

}

/**

*Push de mensaje personalizado

*Nota: Cuando el método push no está vacío, el valor enviado no puede estar vacío; cuando el método push está vacío, no es necesario enviar el valor;

* Modo de inserción de tipo @param: 1, inserción de "etiqueta", 2, inserción de "alias".

* @param valor la etiqueta o valor de alias enviado

* @param alerta contenido push

*/

public static String pushmsg (Tipo de cadena, título de cadena, valor de cadena, alerta de cadena, int roomId, tipo de mensaje de cadena, nombre de cadena, promotor de cadenaAdavter, título de reunión de cadena, firma de cadena){

constructor constructor = empujar carga útil();

builder . set platform(platform . all());//Establecer la plataforma aceptada

if(type .quals(" alias "){

constructor . establecer audiencia(audiencia . alias(valor)); //Alias ​​​​push

} else if(tipo . igual (" etiqueta "){

constructor . establecer audiencia (audience . tag(value)); //Etiqueta push

} De lo contrario {

builder set audiencia(audience . all()); //La audiencia está configurada para todos, indicando difusión Los mensajes enviados pueden ser recibidos por todos los usuarios

}

.

constructor nuevo constructor = mensaje . nuevo constructor();

nuevo constructor .setmsgcontent(alert);//Contenido del mensaje

newBuilder.setTitle(title);

newBuilder.addExtra("roomId ", roomId);

nuevo constructor agregar extra(" tipo de mensaje ", tipo de mensaje);

newBuilder.addExtra("nombre ", nombre );

nuevo constructor. agregar extra(" promotorAdavter ", promotorAdavter);

nuevo constructor. agregar extra(" título de la reunión ", título de la reunión). >newBuilder.addExtra("userSig ", SIG);

mensaje mensaje = nuevo constructor . build();

builder.setMessage(mensaje);

empujar carga útil empujar carga útil = constructor . build();

Pruebe {

resultado de inserción resultado de inserción = jpushclient enviar push(carga útil de inserción);

sistema. out . println(push result . is resultok());

Devuelve "éxito";

}catch(Exception e){

e . );

Devuelve "fallo";

}

}

Public static void main(String[] args) { p>

//Utilice la etiqueta Foucault para enviar mensajes a los usuarios.

//Utilidad EnviarMessage. Pushmsg("Alias", "Título", "5b 9022746 e 284 ea 092 e 3 baa 983035 DC", "Tiene nuevas tareas, trátelas a tiempo", 111, "Tipo de reunión", ".

//sendNotificationWirhAlias_Ios("zzzzzzzzzzzz", "uuid");

//string result = sendmessageutils. push Notice("alias", "title", "5b9022746e 284a092e3a983035dc", "Tienes nueva tarea, manejela a tiempo", 11, "Tipo de conferencia

//System.out.println("return result" + result

/* string result =); utilidades de envío de mensaje ("alias", "título de advertencia", "5b9022746e 284a092e3a983035dc", "dddd", 0, "tipo de advertencia", "") >

system . out . println(" result "+result);*/

//Consulta si la información del alias existe según uuid.

JGUtil("/v3/aliases/5b 9022746 e 284 ea 0992 E3 baa 983035 DC ", " 8a7880c6fb81ad494b224078 ", " c 0 fc 675 c 48 f 9 BF 35269 cf 4 "); //Obtener solicitud

//Resultado de cadena = utilidad de interfaz de solicitud http("/jpush/server/push/server _ descripción general/