Introducción y resumen de contenido
Varios lectores se han quejado de que "Liu Feng solo usa mensajes de texto como ejemplos, nunca menciona mensajes gráficos y no sabe cómo usar mensajes gráficos". Bueno, me equivoqué. Originalmente pensé que la API básica estaba encapsulada y el marco se construyó, y luego le di una muestra de mensajes de texto para usarlos. Tal vez porque mis habilidades de pintura son demasiado pobres, el gato que dibujé no era como un gato ...
Este artículo presenta principalmente el uso de mensajes gráficos y de texto en el desarrollo de la cuenta pública de WeChat, así como varias manifestaciones de mensajes gráficos y de texto. El título se llama "All Guide to Picture and Text Message". Esto definitivamente no es una fiesta de título. Es aprovechar esta oportunidad para eliminar todos los problemas, preocupaciones y obstáculos relacionados con la imagen y el mensaje de texto.
Descripción de los parámetros principales de los mensajes gráficos y de texto
A través de la Guía oficial de interfaz de mensajes WeChat, puede ver los parámetros de los mensajes gráficos y de texto, como se muestra en la figura a continuación:
De la imagen, podemos aprender:
Varias expresiones de mensajes gráficos y de texto
El siguiente es un código que demuestra directamente el uso de las cinco formas principales de mensajes gráficos y de texto. El código fuente es el siguiente:
paquete org.liufeng.course.service; import java.util.arrayList; import java.util.date; import java.util.list; import java.util.map; import javax.servlet.http.htttttpServletRequest; import org.liufeng.course.message. org.liufeng.course.message.resp.newsmessage; import org.liufeng.course.message.resp.textmessage; import org.liufeng.course.util.messageutil;/** * Class de servicio * * * @author liufeng * @date 2013-07-25 */público Class;/** * Core Service Class * * @Author Liufeng * @Date 2013-07-25 */Class de CoreService Core. Solicitudes de proceso de WeChat * * @param solicitud * @return */ public static String ProcessRequest (HTTPServletRequest Request) {String respessage = null; Pruebe {// xml solicitud de análisis de análisis <string, string> requestmap = messageUtil.parsexml (request); // Cuenta de remitente (Open_ID) String fromUSername = requestMap.get ("fromUsername"); // String de cuenta pública tousername = requestMap.get ("tousername"); // Tipo de mensaje String msgtype = requestmap.get ("msgtype"); // Respuesta predeterminada a este mensaje de texto TextMessage TextMessage = new TextMessage (); textMessage.setTouserName (fromUsername); textMessage.setFromUsername (tousername); textMessage.setCreateTime (nueva fecha (). getTime ()); textMessage.SetMsgType (MessageUtil.Resp_Message_Type_Text); textMessage.setFuncflag (0); // Dado que el valor del atributo HREF debe ser causado en cotizaciones dobles, esto entra en conflicto con las cotizaciones dobles de la cadena en sí, TextMessage.SetContent ("Bienvenido a <a href =/" http://blog.csdn.net/lyq8479/ "> Liu Feng's Blog </a>!");); // Convertir el objeto de mensaje de texto a string xml respmessage = messageUtil.TextMessageToxml (TextMessage); // Mensaje de texto if (msgtype.equals (messageUtil.req_message_type_text)) {// Recibe el contenido de mensaje de texto enviado por la cadena del usuario content = requestmap.get ("content"); // Crear mensajes de texto NewsMessage NewsMessage = new NewsMessage (); NewsMessage.SetTouserName (fromUsername); NewsMessage.setFromUsername (Tousername); NewsMessage.SetCreateTime (nueva fecha (). GetTime ()); NewsMessage.SetMsgType (MessageUtil.Resp_Message_Type_News); NewsMessage.SetFuncflag (0); Lista <artículo> articLelist = new ArrayList <Artículo> (); // mensaje de texto único if ("1" .equals (content)) {artículo artículo = nuevo artículo (); artículo artículo artículo Artículo.seturl ("http://blog.csdn.net/lyq8479"); articlelist.add (artículo); // Establecer el número de mensajes gráficos NewsMessage.SetArticleCount (articLelist.size ()); // Establecer las colecciones gráficas contenidas en los mensajes gráficos NewsMessage.SetArticles (ArticLelist); // Convierta el objeto de mensaje gráfico en una cadena XML resphMessage = MessageUtil.NeWsMessageToxml (NewsMessage); } // Mensaje de texto único-Excluir imágenes más if ("2" .equals (content)) {artículo artículo = nuevo artículo (); artículo // Los emoticones QQ y los emoticones simbólicos se pueden usar en el artículo de mensajes de texto Artículo. Configuración de la interfaz, envasado de mensajes, construcción de marco, envío de emoticones QQ, envío de emoticones de símbolo, etc. /n /n más tarde, también se planea lanzar algunas explicaciones de desarrollo práctico, como pronóstico meteorológico, búsqueda periférica, funciones de chat, etc. "); // Establecer la imagen en Artículo vacío.setPicUrl (""); Artículo.seturl ("http://blog.csdn.net/lyq8479"); articlelist.add (artículo); NewsMessage.SetArticleCount (articLelist.size ()); NewsMessage.SetArticles (articlelist); RespMessage = MessageUtil.NeWsMessagetoxml (NewsMessage); } // Mensajes de texto multi-gráficos más if ("3" .equals (content)) {Artículo Artículo1 = nuevo artículo (); Artículo 1.Settitle ("Tutorial de desarrollo de cuentas públicas de WeChat/N Introducción"); Artículo1.SetDescription (""); Artículo1.setPicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); Artículo1.seturl ("http://blog.csdn.net/lyq8479/article/details/8937622"); Artículo Artículo2 = nuevo artículo (); artículo2.settitle ("Parte 2/n Tipo de cuenta pública de WeChat"); artículo2.setDescription (""); artículo2.setPicUrl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artículo2.seturl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Artículo2.seturl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Artículo Artículo3 = nuevo artículo (); Artículo3.settitle ("Telegraph 3/n Modo de desarrollo habilitado y configuración de la interfaz"); artículo3.setDescription (""); artículo3.setPicUrl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artículo3.seturl ("http://blog.csdn.net/lyq8479/article/details/8944988"); ArticLelist.Add (Artículo1); ArticLelist.Add (artículo 2); ArticLelist.Add (Artículo3); NewsMessage.SetArticleCount (articLelist.size ()); NewsMessage.SetArticles (articlelist); RespMessage = MessageUtil.NeWsMessagetoxml (NewsMessage); } // múltiples mensajes gráficos y de texto --- El primer mensaje no contiene imágenes si ("4" .equals (content)) {artículo artículo1 = nuevo artículo (); Artículo 1.Settitle ("Versión Java de desarrollo de la cuenta de cuentas públicas de WeChat"); Artículo1.SetDescription (""); // establecer la imagen en el artículo 1.setPicUrl (""); Artículo1.setUrl ("http://blog.csdn.net/lyq8479"); Artículo Artículo2 = nuevo artículo (); artículo2.settitle ("Paquete de herramientas de procesamiento de mensajes y mensajes"); artículo2.setDescription (""); artículo2.setPicUrl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artículo2.seturl ("http://blog.csdn.net/lyq8479/article/details/8949088"); Artículo Artículo3 = nuevo artículo (); artículo3.settitle ("Artículo 5/NRECEIVE y respuesta de varios mensajes"); artículo3.setDescription (""); artículo3.setPicUrl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artículo3.setUrl ("http://blog.csdn.net/lyq8479/article/details/8952173"); Artículo Artículo4 = nuevo artículo (); Artículo4.settitle ("Artículo 6/NREVEAL El límite de longitud de contenido de los mensajes de texto"); artículo4.setDescription (""); Artículo4.setPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Artículo4.seturl ("http://blog.csdn.net/lyq8479/article/details/8967824"); ArticLelist.Add (Artículo1); ArticLelist.Add (artículo 2); ArticLelist.Add (Artículo3); articlelist.add (artículo4); NewsMessage.SetArticleCount (articLelist.size ()); NewsMessage.SetArticles (articlelist); RespMessage = MessageUtil.NeWsMessagetoxml (NewsMessage); } // Mensajes gráficos múltiples --- El último mensaje no contiene imágenes más si ("5" .equals (content)) {artículo artículo1 = nuevo artículo (); Artículo1.Settitle ("Uso de nuevas líneas en mensajes de texto"); Artículo1.SetDescription (""); Artículo1.setPicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); Artículo1.setUrl ("http://blog.csdn.net/lyq8479/article/details/9141467"); Artículo Artículo2 = nuevo artículo (); artículo2.settitle ("Use hipervínculos web en mensajes de texto"); artículo2.setDescription (""); artículo2.setPicUrl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artículo2.seturl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Artículo2.seturl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Artículo Artículo3 = nuevo artículo (); Artículo3.settitle ("Si cree que el artículo es útil para usted, deje un mensaje en el blog o siga la cuenta pública de WeChat XiaoqroBot para apoyar a Liu Feng!"); artículo3.setDescription (""); // Establecer la imagen en Artículo vacío3.SetPicUrl (""); artículo3.seturl ("http://blog.csdn.net/lyq8479"); ArticLelist.Add (Artículo1); ArticLelist.Add (artículo 2); ArticLelist.Add (Artículo3); NewsMessage.SetArticleCount (articLelist.size ()); NewsMessage.SetArticles (articlelist); RespMessage = MessageUtil.NeWsMessagetoxml (NewsMessage); }}} Catch (Exception e) {E.PrintStackTrace (); } return respsMessage; } / ** * Conversión de expresión de emoji (hex -> utf -16) * * @param hexemoji * @return * / public static string emOJi (int hexemOJi) {return string.valueOf (caracteres.toCars (hexemoJi)); }}La función implementada por el código anterior es responder al usuario con cinco formas diferentes de mensajes gráficos, de la siguiente manera:
a) El usuario envía 1 y responde a un solo mensaje de texto. Líneas de código de referencia 68 ~ 81, el efecto de operación es el siguiente:
b) El usuario envía 2, responde al mensaje de texto - sin imágenes. Líneas de código de referencia 82 ~ 96, el efecto de operación es el siguiente:
Descripción: El título y la descripción del mensaje gráfico pueden contener expresiones QQ y expresiones simbólicas.
c) El usuario envía 3 y responde a múltiples mensajes gráficos y de texto. Líneas de código de referencia 97 ~ 123, el efecto de operación es el siguiente:
Nota: Para los mensajes multigrógenos, la descripción no se mostrará. Los descansos de línea se pueden usar en el título para que la pantalla sea más hermosa.
d) El usuario envía 4 y responde a múltiples mensajes gráficos: el primer mensaje no contiene imágenes. Líneas de código de referencia 124 ~ 158, el efecto de operación es el siguiente:
e) El usuario envía 5 y responde a múltiples mensajes gráficos: el último mensaje no contiene imágenes. Líneas de código de referencia 159 ~ 186, el efecto de operación es el siguiente:
Se puede ver que los mensajes gráficos y de texto tienen contenido rico y diversas formas de expresión. Espero que todos puedan usarlos razonablemente de acuerdo con sus respectivas características y necesidades de uso reales.
Finalmente, según la experiencia práctica, resumiré el uso de mensajes gráficos y de texto :
1) Asegúrese de asignar el valor al atributo URL del mensaje gráfico y de texto. Ya sea que se trate de una sola imagen, una imagen múltiple o imágenes sin imágenes, los usuarios pueden hacer clic en ellos. Si la URL está vacía, el usuario abrirá una página en blanco después de hacer clic, lo que le da al usuario una experiencia muy pobre;
2) solo se mostrará la descripción de imágenes y textos individuales, y no se mostrará la descripción de múltiples imágenes y textos ;
3) Los emoticones QQ y los emoticones simbólicos se pueden usar en el título y la descripción de los mensajes gráficos y de texto. El uso racional de emojis hará que el mensaje sea más vívido;
4) Los descansos de línea se pueden usar en el título y la descripción de los mensajes gráficos y de texto. El uso racional de los descansos de línea aclarará la estructura de contenido;
5) Los enlaces de hipertexto (etiqueta HTML <a>) no son compatibles con el título y la descripción de los mensajes gráficos y de texto. No solo es técnicamente imposible, sino que también tiene sentido lógicamente, porque se hace clic en cualquier ubicación de un mensaje gráfico y de texto, el navegador incorporado de WeChat será llamado a abrir URL. Si coloca algunos hipervínculos en el título y la descripción, no sabe en qué página hacer clic para abrir. Realmente no entiendo por qué varios estudiantes están haciendo esta pregunta. ¿No es bueno diseñarlo como muchas imágenes y textos?
6) Los enlaces y los enlaces de imagen para mensajes gráficos y de texto pueden usar recursos en nombres de dominio externos. Por ejemplo, en este ejemplo: los enlaces de avatar y blogs de blog de Liu Feng son recursos para el sitio web de CSDN. Hay muchas personas que creen que URL y Picurl de mensajes gráficos y de texto no pueden usarse para enlaces externos. No sé dónde comenzó este rumor. ¡La práctica es el único criterio para probar la verdad!
7) Use imágenes del tamaño especificado. El tamaño de imagen recomendado de la primera imagen es 640*320, y el tamaño de imagen recomendado de otras imágenes es 80*80. Si la imagen utilizada es demasiado grande, se cargará lentamente y consumirá tráfico; Si la imagen utilizada es demasiado pequeña, se estirará después de mostrar, lo que será fea si está distorsionada.
8) Se recomienda controlar las imágenes y los mensajes de texto al 1-4. De esta manera, se puede mostrar una pantalla en la mayoría de los terminales, y los usuarios pueden comprender aproximadamente el contenido principal del mensaje solo un vistazo, lo que es más probable que los usuarios hagan clic y lean.
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar a Wulin.com más!