Introdução e resumo do conteúdo
Vários leitores reclamaram que "Liu Feng usa apenas mensagens de texto como exemplos, nunca menciona mensagens gráficas e não sabe como usar mensagens gráficas". Bem, eu estava errado. Originalmente, pensei que a API básica foi encapsulada e a estrutura foi construída e, em seguida, dei uma amostra de mensagens de texto para usá -las. Talvez porque minhas habilidades de pintura sejam muito pobres, o gato que eu desenhei não era como um gato ...
Este artigo apresenta principalmente o uso de mensagens gráficas e de texto no desenvolvimento da conta pública do WeChat, bem como várias manifestações de mensagens gráficas e de texto. O título é chamado "All Guide to Picture and Text Message". Definitivamente, isso não é uma festa do título. É para aproveitar esta oportunidade para eliminar todos os problemas, preocupações e obstáculos relacionados à imagem e mensagem de texto.
Descrição dos principais parâmetros de mensagens gráficas e de texto
Através do guia oficial da interface do WeChat, você pode ver os parâmetros das mensagens gráficas e de texto, como mostrado na figura abaixo:
Da foto, podemos aprender:
Várias expressões de mensagens gráficas e de texto
A seguir, é apresentado um código que demonstra diretamente o uso das cinco formas principais de mensagens gráficas e de texto. O código -fonte é o seguinte:
package org.liufeng.course.service;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.liufeng.course.message.resp.Article;import org.liufeng.course.message.resp.newsmessage; importar org.liufeng.course.message.resp.textMessage; importar org.liufeng.course.util.messageUtil;/** ** * solicitações do weChat * * @param request * @return */ public static string process Processrequest (httpServletRequest request) {string respmessage = null; tente {// xml solicitar o mapa de análise <string, string> requestMap = messageUtil.parsexml (request); // Conta do remetente (open_id) string deUserName = requestmap.get ("DOUSUERNAME"); // string pública de conta toumerername = requestmap.get ("touserrame"); // Tipo de mensagem String msgtype = requestmap.get ("msgtype"); // resposta padrão a esta mensagem de texto textMessage textMessage = new textMessage (); textMessage.SetTouserName (FromUrName); textMessage.SetFromUserName (TouserName); textMessage.SetCreateTime (new Date (). getTime ()); textMessage.SetmsgType (messageutil.resp_message_type_text); textMessage.setFuncflag (0); // Como o valor do atributo href deve ser causado em cotações duplas, isso entra em conflito com as citações duplas da própria string, textMessage.setContent ("Bem -vindo a <a href =/" http://blog.csdn.net/lyq8479/ "liu feng's blog </a>!"); // Converta o objeto de mensagem de texto em xml string respmessage = messageUtil.textMessageToxml (textMessage); // mensagem de texto if (msgtype.equals (messageutil.req_message_type_text)) {// recebe o conteúdo da mensagem de texto enviado pelo usuário string content = requestmap.get ("content"); // Crie mensagens de texto NewsMessage NewsMessage = new NewsMessage (); NewsMessage.setTouserName (FromUrName); NewsMessage.SetFromUserName (TouserName); NewsMessage.SetCreateTime (new Date (). getTime ()); NewsMessage.setmsgtype (messageutil.resp_message_type_news); NewsMessage.setFuncflag (0); List <Trous> articlelist = new ArrayList <Trission> (); // mensagem de texto único if ("1" .equals (content)) {artigo do artigo = novo artigo (); Artigo.Settitle ("Tutorial de Desenvolvimento de Contas Públicas do WeChat versão Java"); Artigo.SetDescription ("Liu Feng, nascido na década de 1980, tem 4 meses de experiência no desenvolvimento de contas públicas do WeChat. Para ajudar os iniciantes a começar, esta série de tutoriais é lançada especialmente e espero aproveitar esta oportunidade para conhecer mais colegas!"); Artigo.SetPicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); artigo.seturl ("http://blog.csdn.net/lyq8479"); articlelist.add (artigo); // Defina o número de mensagens gráficas NewsMessage.setArticleCount (articlelist.size ()); // Definir as coleções gráficas contidas nas mensagens gráficas NewsMessage.Setarticles (ArticleList); // converte o objeto de mensagem gráfica em um XML String respmessage = messageUtil.NewsMessessageToxML (NewsMessage); } // Mensagem de texto único-Excluding Pictures else if ("2" .equals (content)) {artigo do artigo = novo artigo (); Artigo.Settitle ("Tutorial de Desenvolvimento de Contas Públicas do WeChat versão Java"); // emoticons QQ e emoticons simbólicos podem ser usados no artigo de mensagens de texto. Configuração da interface, embalagem de mensagens, construção de estruturas, envio de emoticon QQ, envio de emoticon do símbolo, etc. /n /n mais tarde, também está planejado para lançar algumas explicações de desenvolvimento de funções práticas, como previsão do tempo, pesquisa periférica, funções de bate -papo, etc. "); // Defina a imagem para esvaziar o artigo.Setpicurl (""); artigo.seturl ("http://blog.csdn.net/lyq8479"); articlelist.add (artigo); NewsMessage.setArticleCount (articleList.size ()); NewsMessage.Setarticles (ArticleList); respmessage = messageUtil.NewsMessageToxML (NewsMessage); } // Mensagens de texto multi-gráfico se eliminar if ("3" .equals (content)) {artigo do artigo1 = novo artigo (); Artigo1.Settitle ("Tutorial de Desenvolvimento de Contas Públicas do WeChat/N Introdução"); artigo1.setDescription (""); Artigo1.SetPicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); artigo1.seturl ("http://blog.csdn.net/lyq8479/article/details/8937622"); Artigo artigo2 = novo artigo (); Artigo2.Settitle ("Parte 2/n Tipo de conta pública do WeChat"); artigo2.SetDescription (""); Artigo2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Artigo2.Seturl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Artigo2.Seturl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Artigo Artigo3 = Novo Artigo (); Artigo3.Settitle ("TELEGRAPH 3/N MODO DE DESENVOLVIMENTO ENFIGURAÇÃO E CONFIGURAÇÃO DE INTERFACE"); artigo3.SetDescription (""); Artigo3.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artigo3.Seturl ("http://blog.csdn.net/lyq8479/article/details/8944988"); articlelist.add (artigo1); articlelist.add (artigo2); articlelist.add (artigo3); NewsMessage.setArticleCount (articleList.size ()); NewsMessage.Setarticles (ArticleList); respmessage = messageUtil.NewsMessageToxML (NewsMessage); } // múltiplas mensagens gráficas e de texto --- A primeira mensagem não contém imagens mais if ("4" .equals (content)) {artigo1 = novo artigo (); Artigo1.Settitle ("Tutorial de Desenvolvimento de Contas Públicas do WeChat Versão Java"); artigo1.setDescription (""); // defina a imagem para esvaziar o artigo1.etpicurl (""); artigo1.seturl ("http://blog.csdn.net/lyq8479"); Artigo artigo2 = novo artigo (); artigo2.Settitle ("Pacote de ferramentas de processamento de mensagens e mensagens"); artigo2.SetDescription (""); Artigo2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Artigo2.Seturl ("http://blog.csdn.net/lyq8479/article/details/8949088"); Artigo Artigo3 = Novo Artigo (); Artigo3.Settitle ("Artigo 5/nreceive e resposta de várias mensagens"); artigo3.SetDescription (""); Artigo3.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); artigo3.Seturl ("http://blog.csdn.net/lyq8479/article/details/8952173"); Artigo Artigo4 = Novo Artigo (); Artigo4.Settitle ("Artigo 6/nreveal o limite de comprimento do conteúdo das mensagens de texto"); artigo4.SetDescription (""); Artigo4.etPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Artigo4.Seturl ("http://blog.csdn.net/lyq8479/article/details/8967824"); articlelist.add (artigo1); articlelist.add (artigo2); articlelist.add (artigo3); articlelist.add (artigo4); NewsMessage.setArticleCount (articleList.size ()); NewsMessage.Setarticles (ArticleList); respmessage = messageUtil.NewsMessageToxML (NewsMessage); } // Várias mensagens gráficas --- A última mensagem não contém imagens mais if ("5" .equals (content)) {artigo1 = novo artigo (); artigo1.setTitle ("Uso de novas linhas em mensagens de texto"); artigo1.setDescription (""); Artigo1.SetPicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); artigo1.seturl ("http://blog.csdn.net/lyq8479/article/details/9141467"); Artigo artigo2 = novo artigo (); Artigo2.Settitle ("Use hiperlinks da Web em mensagens de texto"); artigo2.SetDescription (""); Artigo2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Artigo2.Seturl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Artigo2.Seturl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Artigo Artigo3 = Novo Artigo (); artigo3.Settitle ("Se você acha que o artigo é útil para você, deixe uma mensagem no blog ou siga a conta pública do WeChat XiaoqroBot para apoiar Liu Feng!"); artigo3.SetDescription (""); // Defina a imagem para esvaziar o artigo3.Setpicurl (""); artigo3.Seturl ("http://blog.csdn.net/lyq8479"); articlelist.add (artigo1); articlelist.add (artigo2); articlelist.add (artigo3); NewsMessage.setArticleCount (articleList.size ()); NewsMessage.Setarticles (ArticleList); respmessage = messageUtil.NewsMessageToxML (NewsMessage); }}} catch (Exceção e) {e.printStackTrace (); } retornar respmessage; } / ** * Conversão de expressão emoji (Hex -> utf -16) * * @param hexemoji * @return * / public static string emoji (int hexemoji) {return string.valueof (caracteres.toChars (hexemoji)); }}A função implementada pelo código acima é responder ao usuário com cinco formas diferentes de mensagens gráficas, como segue:
a) O usuário envia 1 e responde a uma única mensagem de texto. Linhas de código de referência 68 ~ 81, o efeito de operação é o seguinte:
b) O usuário envia 2, responda à mensagem de texto - sem imagens. Linhas de código de referência 82 ~ 96, o efeito de operação é o seguinte:
Descrição: O título e a descrição da mensagem gráfica podem conter expressões QQ e expressões simbólicas.
c) O usuário envia 3 e responde a várias mensagens gráficas e de texto. Linhas de código de referência 97 ~ 123, o efeito de operação é o seguinte:
Nota: Para mensagens multi-gráficas, a descrição não será exibida. As quebras de linha podem ser usadas no título para tornar a tela mais bonita.
d) O usuário envia 4 e responde a várias mensagens gráficas-a primeira mensagem não contém imagens. Linhas de código de referência 124 ~ 158, o efeito de operação é o seguinte:
e) O usuário envia 5 e responde a várias mensagens gráficas-a última mensagem não contém imagens. Linhas de código de referência 159 ~ 186, o efeito de operação é o seguinte:
Pode -se observar que as mensagens gráficas e de texto têm conteúdo rico e formas diversas de expressão. Espero que todos possam usá -los razoavelmente de acordo com suas respectivas características e necessidades de uso reais.
Finalmente, com base na experiência prática, resumirei o uso de mensagens gráficas e de texto :
1) Certifique -se de atribuir o valor ao atributo URL da mensagem gráfica e de texto. Seja uma imagem única, múltipla imagem ou imagens sem fotos, elas podem ser clicadas pelos usuários. Se o URL estiver vazio, o usuário abrirá uma página em branco depois de clicar, o que proporciona ao usuário uma experiência muito ruim;
2) Somente a descrição de imagens e textos únicos será exibida e a descrição de várias imagens e textos não será exibida ;
3) Emoticons QQ e emoticons simbólicos podem ser usados no título e na descrição das mensagens gráficas e de texto. O uso racional de emojis tornará a mensagem mais vívida;
4) As quebras de linha podem ser usadas no título e na descrição das mensagens gráficas e de texto. O uso racional de quebras de linha tornará a estrutura de conteúdo mais clara;
5) Os links de hipertexto (tag html <a>) não são suportados no título e na descrição das mensagens gráficas e de texto. Não é apenas tecnicamente impossível, mas também faz sentido logicamente, porque qualquer localização de uma mensagem gráfica e de texto é clicada, o navegador embutido do WeChat será chamado para abrir o URL. Se você colocar alguns hiperlinks no título e na descrição, não saberá qual página clicar para abrir. Eu realmente não entendo por que vários alunos estão fazendo essa pergunta. Não é bom projetá -lo tantas fotos e textos?
6) Os links e links de imagem para mensagens gráficos e de texto podem usar recursos em nomes de domínio externos. Por exemplo, neste exemplo: os links de Avatar e Postagem do Blog de Liu Feng são todos recursos para o site da CSDN. Há muitas pessoas que acreditam que o URL e o picurl de mensagens gráficas e de texto não podem ser usadas para links externos. Não sei onde esse boato começou. A prática é o único critério para testar a verdade!
7) Use imagens do tamanho especificado. O tamanho da imagem recomendado da primeira imagem é 640*320, e o tamanho da imagem recomendado de outras imagens é 80*80. Se a imagem usada for muito grande, carregará lentamente e consumirá tráfego; Se a imagem usada for muito pequena, será esticada após a exibição, o que será feio se for distorcido.
8) As imagens e as mensagens de texto são recomendadas para serem controladas em 1-4. Dessa forma, uma tela pode ser exibida na maioria dos terminais, e os usuários podem entender aproximadamente o conteúdo principal da mensagem apenas por uma olhada, o que provavelmente solicitará que os usuários cliquem e leiam.
O exposto acima é todo o conteúdo deste artigo. Espero que o conteúdo deste artigo seja de ajuda para estudar ou trabalhar de todos. Eu também espero apoiar mais wulin.com!