Résumé d'introduction et de contenu
Plusieurs lecteurs se sont plaints que "Liu Feng utilise uniquement des messages texte comme exemples, ne mentionne jamais les messages graphiques et ne sait pas comment utiliser les messages graphiques". Eh bien, j'avais tort. Je pensais à l'origine que l'API de base était encapsulée et que le cadre a été construit, puis a donné un échantillon de messages texte pour les utiliser. Peut-être que parce que mes compétences en peinture sont trop pauvres, le chat que j'ai dessiné n'était pas comme un chat ...
Cet article introduit principalement l'utilisation de messages graphiques et texte dans le développement du compte public WeChat, ainsi que plusieurs manifestations de messages graphiques et texte. Le titre est nommé "All Guide to Picture and Text SMS". Ce n'est certainement pas une fête de titre. Il s'agit de saisir cette occasion pour éliminer tous les problèmes, préoccupations et obstacles liés à l'image et au message texte.
Description des principaux paramètres des messages graphiques et texte
Grâce au guide officiel d'interface de message WECHAT, vous pouvez voir les paramètres des messages graphiques et texte, comme indiqué dans la figure ci-dessous:
De l'image, nous pouvons apprendre:
Diverses expressions de messages graphiques et texte
Ce qui suit est un code qui démontre directement l'utilisation des cinq principales formes de messages graphiques et texte. Le code source est le suivant:
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. org.liufeng.course.message.resp.newsmessage; import org.liufeng.course.message.resp.textmesage; import org.liufeng.course.util.messageutil; / ** * Classé de service de base * * @author liufing * @date 2013-07-25 * / Classe publique Classe CLASSEWINSEW WeChat * * @param request * @return * / public static String processRequest (httpServLetRequest request) {String respMessage = null; essayez {// xml de la demande d'analyse de l'analyse <chaîne, string> requestmap = MessageUtil.parsexml (request); // String du compte Sender (Open_ID) FROMUSERNAME = requestmap.get ("FromUserName"); // String de compte public Tausername = requestmap.get ("Tausername"); // Type de message String msgType = requestmap.get ("msgType"); // Réponse par défaut à ce message texte textMessage textMessage = new TextMessage (); textMessage.setTouserName (FromUserName); textMessage.setFromUsername (Tausername); textMessage.setCreateTime (new Date (). GetTime ()); textMessage.setmsGtype (messageutil.resp_message_type_text); textMessage.setfuncflag (0); // Étant donné que la valeur d'attribut HREF doit être causée en doubles devis, cela entre en conflit avec les doubles citations de la chaîne elle-même, textMessage.setContent ("bienvenue à <a href = /" http://blog.csdn.net/lyq8479/ "> liu Feng's Blog </a>!"); // Convertir un objet METM en XML String respsensage = MessageUtil.TextMessageToxMl (TextMessage); // Message texte if (msgType.equals (messageutil.req_message_type_text)) {// Recevez le contenu du message texte envoyé par la chaîne utilisateur contenu = requestmap.get ("contenu"); // Créer un message texte NewsMessage NewsMessage = new NewsMessage (); NewsMessage.setTousername (FromUserName); NewsMessage.SetFromUsername (Tousername); NewsMessage.setCreateTime (new Date (). GetTime ()); newsMessage.setmsGtype (messageutil.resp_message_type_news); NewsMessage.SetFuncflag (0); Liste <Reticle> ArtiCleList = new ArrayList <Reate> (); // Message texte unique if ("1" .equals (contenu)) {Article Article = nouvel article (); Article.SetTitle ("WECHAT Public Account Development Tutorial Java Version"); Article.SetDescription ("Liu Feng, né dans les années 1980, a 4 mois d'expérience dans le développement de compte public WeChat. Pour aider les débutants à démarrer, cette série de tutoriels est spécialement lancée, et j'espère saisir cette occasion pour rencontrer plus de pairs!"); Article.Setpicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); Article.SetUrl ("http://blog.csdn.net/lyq8479"); articlelist.add (article); // Définissez le nombre de messages graphiques newsage.setarticleCount (articlelist.size ()); // Définit les collections graphiques contenues dans les messages graphiques newsage.setarticles (articlelist); // convertit l'objet de message graphique en une chaîne XML respsensage = MessageUtil.newsMessageTOxML (NewsMessage); } // Message texte unique - Excluant des images else if ("2" .equals (contenu)) {Article Article = nouvel article (); Article.SetTitle ("WECHAT Public Account Development Tutorial Java Version"); // Les émoticônes QQ et les émoticônes symboliques peuvent être utilisées dans les messages texte Article. Configuration de l'interface, emballage de messages, construction de framework, envoyé en émoticône QQ, envoi d'émoticône symbole, etc. / n / n plus tard, il est également prévu de lancer des explications de développement de fonctions pratiques, telles que les prévisions météorologiques, la recherche périphérique, les fonctions de chat, etc. "); // définit l'image sur l'article vide.setpicurl (""); Article.SetUrl ("http://blog.csdn.net/lyq8479"); articlelist.add (article); NewsMessage.SetarticleCount (Articlelist.Size ()); NewsMessage.SetArticles (Aticlelist); respMessage = MessageUtil.newsMessageToxML (NewsMessage); } // messages texte multi-graphiques else if ("3" .equals (contenu)) {article Article1 = nouvel article (); Article1.SetTitle ("WeChat Public Account Development Tutorial / N Introduction"); Article1.SetDescription (""); Article1.setpicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); Article1.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8937622"); Article Article2 = nouvel article (); Article2.SetTitle ("Partie 2 / N Type de compte public WeChat"); Article2.SetDescription (""); Article2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article2.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Article2.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8941577"); Article Article3 = nouvel article (); Article3.SetTitle ("Telegraph 3 / N Development Mode Activation and Interface Configuration"); Article3.SetDescription (""); Article3.setpicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article3.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8944988"); articlelist.add (article1); articlelist.add (article2); articlelist.add (article3); NewsMessage.SetarticleCount (Articlelist.Size ()); NewsMessage.SetArticles (Aticlelist); respMessage = MessageUtil.newsMessageToxML (NewsMessage); } // plusieurs messages graphiques et texte --- Le premier message ne contient pas d'images sinon ("4" .equals (contenu)) {Article Article1 = nouvel article (); Article1.SetTitle ("WECHAT Public Account Development Tutorial Version Java"); Article1.SetDescription (""); // Définissez l'image sur l'article vide1.setpicurl (""); Article1.SetUrl ("http://blog.csdn.net/lyq8479"); Article Article2 = nouvel article (); Article2.SetTitle ("Package des outils de traitement des messages et des messages"); Article2.SetDescription (""); Article2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article2.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8949088"); Article Article3 = nouvel article (); Article3.SetTitle ("Article 5 / Nreceive et réponse de divers messages"); Article3.SetDescription (""); Article3.setpicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article3.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8952173"); Article Article4 = nouvel article (); Article4.SetTitle ("Article 6 / Nreveal La limite de longueur de contenu des messages texte"); Article4.SetDescription (""); Article4.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article4.SetUrl ("http://blog.csdn.net/lyq8479/article/details/8967824"); articlelist.add (article1); articlelist.add (article2); articlelist.add (article3); articlelist.add (article4); NewsMessage.SetarticleCount (Articlelist.Size ()); NewsMessage.SetArticles (Aticlelist); respMessage = MessageUtil.newsMessageToxML (NewsMessage); } // plusieurs messages graphiques --- Le dernier message ne contient pas d'images else if ("5" .equals (contenu)) {Article Article1 = nouvel article (); Article1.setTitle ("Utilisation de Newlines dans les messages texte"); Article1.SetDescription (""); Article1.setpicurl ("http://0.xiaoqrobot.duapp.com/images/avatar_liufeng.jpg"); Article1.SetUrl ("http://blog.csdn.net/lyq8479/article/details/9141467"); Article Article2 = nouvel article (); Article2.SetTitle ("Utiliser des hyperliens Web dans les messages texte"); Article2.SetDescription (""); Article2.SetPicurl ("http://avatar.csdn.net/1/4/a/1_lyq8479.jpg"); Article2.SetUrl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Article2.SetUrl ("http://blog.csdn.net/lyq8479/article/details/9157455"); Article Article3 = nouvel article (); Article3.SetTitle ("Si vous pensez que l'article vous est utile, veuillez laisser un message sur le blog ou suivre le compte public WeChat Xiaoqrobot pour soutenir Liu Feng!"); Article3.SetDescription (""); // Définissez l'image sur l'article vide3.setpicurl (""); Article3.SetUrl ("http://blog.csdn.net/lyq8479"); articlelist.add (article1); articlelist.add (article2); articlelist.add (article3); NewsMessage.SetarticleCount (Articlelist.Size ()); NewsMessage.SetArticles (Aticlelist); respMessage = MessageUtil.newsMessageToxML (NewsMessage); }}} catch (exception e) {e.printStackTrace (); } return reswessage; } / ** * Conversion d'expression emoji (hex -> utf-16) * * @param hexemoji * @return * / public static String emoji (int hexemoji) {return string.valueof (personnage.tochars (hexemoji)); }}La fonction implémentée par le code ci-dessus est de répondre à l'utilisateur avec cinq formes différentes de messages graphiques, comme suit:
a) L'utilisateur envoie 1 et répond à un seul message texte. Lignes de code de référence 68 ~ 81, l'effet de fonctionnement est le suivant:
b) L'utilisateur envoie 2, répondez au SMS - sans images. Lignes de code de référence 82 ~ 96, l'effet de fonctionnement est le suivant:
Description: Le titre et la description du message graphique peuvent contenir des expressions QQ et des expressions symboliques.
c) L'utilisateur envoie 3 et répond à plusieurs messages graphiques et texte. Lignes de code de référence 97 ~ 123, l'effet de fonctionnement est le suivant:
Remarque: Pour les messages multi-graphiques, la description ne sera pas affichée. Les pauses de ligne peuvent être utilisées dans le titre pour rendre l'affichage plus beau.
d) L'utilisateur envoie 4 et répond à plusieurs messages graphiques - le premier message ne contient pas d'images. Lignes de code de référence 124 ~ 158, l'effet de fonctionnement est le suivant:
e) L'utilisateur envoie 5 et répond à plusieurs messages graphiques - le dernier message ne contient pas d'images. Lignes de code de référence 159 ~ 186, l'effet de fonctionnement est le suivant:
On peut voir que les messages graphiques et texte ont un contenu riche et diverses formes d'expression. J'espère que tout le monde pourra les utiliser raisonnablement en fonction de ses caractéristiques respectives et des besoins d'utilisation réels.
Enfin, sur la base d'une expérience pratique, je résumerai l'utilisation des messages graphiques et texte :
1) Assurez-vous d'attribuer la valeur à l'attribut URL du graphique et du message texte. Qu'il s'agisse d'une seule image, d'une seule image ou d'images sans images, ils peuvent être cliqués par les utilisateurs. Si l'URL est vide, l'utilisateur ouvrira une page vierge après avoir cliqué, ce qui offre à l'utilisateur une très mauvaise expérience;
2) Seule la description des images uniques et des textes sera affichée et la description de plusieurs images et textes ne sera pas affichée ;
3) Les émoticônes QQ et les émoticônes symboliques peuvent être utilisées dans le titre et la description des messages graphiques et texte. L'utilisation rationnelle des emojis rendra le message plus vif;
4) Les pauses de ligne peuvent être utilisées dans le titre et la description des messages graphiques et texte. L'utilisation rationnelle des ruptures de ligne rendra la structure du contenu plus claire;
5) Les liens hypertextes (balises HTML <a>) ne sont pas pris en charge dans le titre et la description des messages graphiques et texte. Non seulement il est techniquement impossible, mais il est également logique logiquement, car tout emplacement d'un message graphique et texte est cliqué, mais le navigateur intégré de WeChat sera appelé pour ouvrir URL. Si vous mettez quelques hyperliens dans le titre et la description, vous ne savez pas quelle page cliquez pour ouvrir. Je ne comprends vraiment pas pourquoi plusieurs élèves posent cette question. N'est-il pas bon de le concevoir autant d'images et de textes?
6) Les liens et les liens d'image pour les messages graphiques et texte peuvent utiliser des ressources sous des noms de domaine externes. Par exemple, dans cet exemple: l'avatar de Liu Feng et les liens de blog sont tous des ressources sur le site Web de CSDN. Il y a beaucoup de gens qui croient que l'URL et le picurl de messages graphiques et texte ne peuvent pas être utilisés pour des liens externes. Je ne sais pas où cette rumeur a commencé. La pratique est le seul critère pour tester la vérité!
7) Utilisez des images de la taille spécifiée. La taille de l'image recommandée de la première image est de 640 * 320, et la taille de l'image recommandée d'autres images est de 80 * 80. Si l'image utilisée est trop grande, elle se chargera lentement et consommera le trafic; Si l'image utilisée est trop petite, elle sera étirée après affichage, ce qui sera laid s'il est déformé.
8) Les images et les SMS sont recommandés pour être contrôlés à 1-4. De cette façon, un écran peut être affiché sur la plupart des terminaux, et les utilisateurs peuvent approprier à peu près le contenu principal du message par un simple coup d'œil, qui est le plus susceptible d'inviter les utilisateurs à cliquer et à lire.
Ce qui précède est tout le contenu de cet article. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. J'espère également soutenir plus Wulin.com!