La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo llamar al fondo de jpush push java

Cómo llamar al fondo de jpush push java

Los trabajos originales se pueden reimprimir, pero indique la dirección de origen blogs.com/V1haoge/p/6439313.html

Hay dos formas de implementar Aurora Push en segundo plano de Java. Uno es usar La API de solicitud de inserción proporcionada por Jiguang Push es /v3/push, y el otro es usar el SDK de Java de terceros proporcionado oficialmente. Aquí está el código de implementación del primer método de inserción: import?org.apache. ./v3/push ";

privado?boolean?apns_production?=?true;

privado?int?time_to_live?=?86400;

privado? static?final?String ?ALERT?=?"Push information";

/** *?Aurora Push*/

public?void?jiguangPush(){

String?alias?=?"123456"; //Declarar alias

try{

String?result?=?push(pushUrl, alias, ALERT, appKey, masterSecret , apns_production, time_to_live) ;

JSONObject?resData?=?JSONObject.fromObject(resultado);

if(resData.containsKey("error")){

log.info ("¡Error al enviar información con el alias "? ?alias? ?"!"

JSONObject?error?=?JSONObject.fromObject(resData.get("error")) ;

log.info("El mensaje de error es: "? ?error.get("message").toString());

}

log.info(" ¡La información con el alias "? ?alias? ?" se envió correctamente! "); "Para el alias "?" ?alias? ?"¡El envío de información falló!", e);

}

}

/** *? Ensamble la cadena json especial para Aurora push*?@param?alias *?@param?alert *?@return?json */

public?static?JSONObject?generateJson(String?alias, String? alerta, boolean?apns_production, int?time_to_live) {

JSONObject?json?=?new?JSONObject();

JSONArray?platform?=?new?JSONArray();/ /Plataforma

plataforma .add("android");

plataforma.add("ios");

JSONObject?audience?=?new?JSONObject (); //Publicar destino

JSONArray?alias1?=?new?JSONArray();

alias1.add(alias);

audience.put("alias",?alias1);

JSONObject?notification?=?new?JSONObject();// Contenido de la notificación

JSONObject?android?=?new?JSONObject(); //contenido de la notificación de Android

android.put("alert",?alert);

android.put("builder_id",?1);

JSONObject?android_extras?=?new?JSONObject(); //parámetros adicionales de Android

android_extras.put(" type",?"infomation");

android.put("extras",?android_extras);

JSONObject?ios?=?new?JSONObject(); //ios Contenido de la notificación

ios.put("alert",?alert);

ios.put("sound","default");

ios .put("insignia",?" 1");

JSONObject?ios_extras?=?new?JSONObject(); //parámetros adicionales de ios

ios_extras.put("tipo ",?"información");

ios.put("extras",?ios_extras);

notificación.put("android",?android);

notificación.put("ios",?ios);

JSONObject?options?=?new?JSONObject();//Establecer parámetros

options.put(" time_to_live",?Integer.valueOf(time_to_live));

options.put("apns_production",?apns_production);

json.put("plataforma",?plataforma);

json.put("audiencia",?audiencia);

json.put("notificación",?notificación);

json.put(" options",?options);

return?json;

}

/** *?Push llamada al método Aurora API *?@param?reqUrl *?@param?alias *?@param?alert *?@return?result */

public?static?String?push(String?reqUrl, String?alias, String?alert, String?appKey , String?masterSecret, boolean?apns_production, int?time_to_live){

String?base64_auth_string

?=?encryptBASE64(appKey? ?":"? ?masterSecret);

String?authorization?=?"Basic?"? base64_auth_string;

return?sendPostRequest(reqUrl, generateJson(alias, alert, apns_production, time_to_live).toString(), "UTF-8", autorización

}

/** *?Enviar solicitud de publicación (formato json); ) *?@param?reqURL *?@param?data *?@param?encodeCharset *?@param?authorization *?@return?result */

@SuppressWarnings({?"resource"?} )

public?static?String?sendPostRequest(String?reqURL, ?String?data, ?String?encodeCharset, String?authorization){

HttpPost?.jiguang.common.ClientConfig ;

¿importar?cn.jiguang.common.resp.APIConnectionException;

¿importar?cn.jiguang.common.resp.APIRequestException;

¿importar?cn. jpush.api.JPushClient;

importar?cn.jpush.api.push.PushResult;

importar?cn.jpush.api.push.model.Options;

¿importar?cn.jpush.api.push.model.Platform;

¿importar?cn.jpush.api.push.model.PushPayload;

¿importar?cn.jpush .api.push.model.audience.Audience;

¿importar?cn.jpush.api.push.model.notification.AndroidNotification;

¿importar?cn.jpush.api.push .model.notification.IosNotification;

import?cn.jpush.api.push.model.notification.Notification;

/** *?Fondo de Java Método dos de inserción de Aurora: utilizar Java?SDK */

@SuppressWarnings({?"deprecation",?"restriction"?})

¿pública?clase?JiguangPush?{

privada ?static?final?Logger?log?=?LoggerFactory.getLogger(JiguangPush.class);

priv

comió?static?String?masterSecret?=?"xxxxxxxxxxxxxxxxx";

privado?static?String?appKey?=?"xxxxxxxxxxxxxxxx";

privado?static?final?String? ALERT?=?"Información push";

/** *?Aurora Push*/

public?void?jiguangPush(){

Cadena?alias ?=?"123456"; //Declarar alias

log.info("Información push del usuario para alias "? ?alias? ?"");

PushResult?result? = ?push(String.valueOf(alias),ALERT);

if(result?!=?null?amp;amp;?result.isResultOK()){

log . info("¿La información para el alias"? ?alias? ?" se envió correctamente!");

}else{

log.info("¿Para el alias"? ?alias? ? "¡Error en el envío de información!");

}

}

/** *? Generar el objeto push de Aurora PushPayload (usando java? SDK) * ?@param?alias *?@param?alert *?@return?PushPayload */

public?static?PushPayload?buildPushObject_android_ios_alias_alert(String?alias, String?alert){

return?PushPayload.newBuilder()

.setPlatform(Platform.android_ios())

.setAudience(Audience.alias(alias))

.setNotification( Notification.newBuilder()

.addPlatformNotification(AndroidNotification.newBuilder()

.addExtra("type",?"infomation")

.setAlert(alert )

.build())

.addPlatformNotification(IosNotification.newBuilder()

.addExtra("type","infomation")

.setAlert(alerta)

.build())

.build())

.setOptions(Options.newBuilder() p>

.setApnsProduction(false)//true-push el entorno de producción?false-push el entorno de desarrollo (parámetros de prueba)

.setTimeToLive(90)//El tiempo de vencimiento del mensaje en el servidor JPush (Prueba usando parámetros)

.build())

.build();

}

/** *?Método de inserción Aurora (usando java?SDK) *?@param?alias *?@param?alert *?@return?PushResult */

public?static?PushResult? push(String?alias, String?alert){

ClientConfig?clientConfig?=?ClientConfig.getInstance();

JPushClient?jpushClient?=?new?JPushClient(masterSecret,? appKey,?null,?clientConfig);

PushPayload?payload?=?buildPushObject_android_ios_alias_alert(alias, alerta);

¿intentar?{

return?jpushClient. sendPush(carga útil);

}?catch?(APIConnectionException?e)?{

log.error("¿Conexión?error.?¿Debería?reintentar?más tarde.?",? e);

return?null;

}?catch?(APIRequestException?e)?{

log.error("¿Error?respuesta?de? JPush?server.?¿Debería?revisarlo?y?arreglarlo.?",?e);

log.info("HTTP?Status:?"? ?e.getStatus());

log.info("¿Error?Código:?"? ?e.getErrorCode());

log.info("¿Error?Mensaje:?"? ?e.getErrorMessage( ));

log.info("¿Msg?ID:?"? ?e.getMsgId());

return?null;

}

}

}

Se puede ver que la forma de utilizar el SDK de Java para implementar push es muy simple, la cantidad de código es pequeña y es No es difícil de entender. El SDK oficial ha implementado gran parte del contenido mencionado en el artículo. Solo necesitamos configurar la información y luego iniciar el envío. Cabe señalar que cuando se utiliza el segundo método, es necesario importar el paquete jar proporcionado por el sitio web oficial de Jiguang.

Agregar directamente al archivo pom en maven: lt;dependencygt;

lt;groupIdgt;cn.jpush.apilt;/groupIdgt;

lt; ;jpush-clientlt;/artifactIdgt;

lt;versiongt;3.2.15lt;/versiongt;

lt;/dependencygt; Nota: Es muy probable que aparezca un paquete jar aquí Conflicto : He olvidado el paquete específico. Parece ser un paquete de registro. Puedes eliminarlo después de encontrarlo.

Originalmente, nuestro proyecto se implementó de la segunda manera, pero al final encontramos un problema al enviar el código, es decir, aunque solo trajimos los tres paquetes jar proporcionados por el sitio web oficial, el último Según las estadísticas, se agregaron 80 paquetes jar sin ningún motivo. Enviar tantos paquetes jar es demasiado inflado y poco realista, por lo que el plan se cambió temporalmente y se utilizó el primer método para codificar.

El código utiliza un método de alias para la inserción, y el alias debe configurarse en la aplicación móvil. Es mejor configurarlo después de que el usuario inicie sesión, siempre que el usuario inicie sesión una vez. , su alias vinculado será Se puede guardar en el servidor Jiguang y, cuando enviamos, especificamos este alias para enviar la información al teléfono móvil del usuario correspondiente.

De hecho, cuando iniciamos una solicitud push, simplemente enviamos la información al servidor Aurora. Esta información tiene un límite de tiempo de almacenamiento, que por defecto es de un día siempre que el usuario inicie sesión. Aplicación móvil, el servidor Aurora enviará automáticamente la información al alias correspondiente en el teléfono móvil, se puede ver que la información no la enviamos nosotros directamente al teléfono móvil pasado mañana, sino a través de la estación de transferencia del. Servidor Aurora, y este es oficialmente trabajo de Aurora. Nota: Aquí hay un consejo al configurar este alias, en realidad puede configurar directamente el ID de usuario como un alias. Es conveniente y seguro. No tiene que pensar en formas de generar una cadena única para la identificación, ni siquiera es necesario. para configurarlo en la base de datos en segundo plano. Se agregan nuevos campos a la tabla de usuarios.