国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison Applet WeChat Développement WeChat Création de menu personnalisé dans le développement Java WeChat

Création de menu personnalisé dans le développement Java WeChat

May 10, 2017 am 09:32 AM
java Wechat Personnaliser le menu

Cet article présente principalement en détail la dixième étape du développement de la plate-forme publique Java WeChat, la création et la mise en ?uvre du menu personnalisé WeChat, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

La fonction de personnalisation. Le menu peut être modifié directement en arrière-plan dans notre mode d'édition normal, mais une fois que nous entrons dans le mode développement, notre menu personnalisé doit être implémenté par nous-mêmes, cela peut donc être un problème pour ceux qui sont nouveaux si vous en avez. En cas de doute, je vais parler ici de deux fa?ons d'implémenter des menus personnalisés que nous utilisons habituellement en mode développement : ① Pas besoin d'écrire du code d'implémentation, utilisez directement l'outil de test de page Web Post jsonStringGénérer un menu?; ② consiste à utiliser du code pour générer un menu dans notre développement?! (Document de référence : http://mp.weixin.qq.com/wiki/10/0234e39a2025342c17a7d23595c6b40a.html) Il existe deux types de menus dans le menu personnalisé, l'un est le vue menu de vue, sauter directement à la page url après avoir cliqué?; il y a aussi un type de clic, le backend donne différentes réponses via le type de clic événement plus tard ajoute divers Les menus des fonctions spéciales sont essentiellement des clics?; tapez les menus, donc les règles de génération sont les mêmes. La fa?on de générer des menus est de publier des cha?nes json sur le serveur WeChat pour générer des menus. Les méthodes et règles de génération de menus sont décrites ci-dessous !

(1) Utilisez l'outil Débogage de la page Web pour générer le menu

Nous nous connectons via (mp.weixin.qq.com/debug /cgi-bin /apiinfo?t=index&type=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95&form=%E8%87%AA%E5 %AE%9A %E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3%20/menu /create ) Entrez Accédez à l'outil de débogage Web, comme indiqué ci-dessous?:

Lorsque nous générons le menu ici, nous n'avons besoin que du jeton valide de notre compte et la cha?ne json. Voici la cha?ne json La cha?ne peut être modifiée en se référant au cas dans le document. Un cas que je donne ici est le suivant :

{
 "button": [
  {
   "name": "博客", 
   "type": "view", 
   "url": "http://www.cuiyongzhi.com"
  }, 
  {
   "name": "菜單", 
   "sub_button": [
    {
     "key": "text", 
     "name": "回復(fù)圖文", 
     "type": "click"
    }, 
    {
     "name": "博客", 
     "type": "view", 
     "url": "http://www.cuiyongzhi.com"
    }
   ]
  }, 
  {
   "key": "text", 
   "name": "回復(fù)圖文", 
   "type": "click"
  }
 ]
}

Nous remplissons le jeton de réponse et cliquons sur Vérifier le problème. . Si le résultat est OK, c'est OK, comme suit :

à ce stade, nous avons terminé d'utiliser l'outil de test Web pour générer le menu Suivant. , nous présenterons l'utilisation du code pour générer le menu !

(2) Utiliser du code pour générer le menu

Nous avons dit plus t?t qu'il y avait deux types d'événements dans le menu : visualiser et cliquer Ici, nous créons d'abord un. menu dans le code Créer des entités java correspondant aux deux types. Le type de vue crée l'entité ViewButton.java comme suit :

package com.cuiyongzhi.wechat.menu;
 
/**
 * ClassName: ViewButton
 * @Description: 視圖型菜單事件
 * @author dapengniao
 * @date 2016年3月14日 下午5:31:38
 */
public class ViewButton {
 private String type;
 private String name;
 private String url;
 
 public String getType() {
  return type;
 }
 
 public void setType(String type) {
  this.type = type;
 }
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public String getUrl() {
  return url;
 }
 
 public void setUrl(String url) {
  this.url = url;
 }
 
}

De même, crée l'entité clic ClickButton.java comme suit :

package com.cuiyongzhi.wechat.menu;
 
/**
 * ClassName: ClickButton
 * @Description: 點(diǎn)擊型菜單事件
 * @author dapengniao
 * @date 2016年3月14日 下午5:31:50
 */
public class ClickButton {
 private String type;
 private String name;
 private String key;
 
 public String getType() {
  return type;
 }
 
 public void setType(String type) {
  this.type = type;
 }
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public String getKey() {
  return key;
 }
 
 public void setKey(String key) {
  this.key = key;
 }
 
}

Créez-en deux ici Cette entité sert également à faciliter notre encapsulation de json dans le menu personnalisé. Ici, j'encapsule le même format json donné ci-dessus sous forme de code, et j'appelle l'interface pour générer. le menu personnalisé et l'envoyer au serveur WeChat, le code simple est le suivant?:

package com.cuiyongzhi.wechat.menu;
 
import com.alibaba.fastjson.JSONObject;
import com.cuiyongzhi.wechat.util.HttpUtils;
 
import net.sf.json.JSONArray;
 
public class MenuMain {
 
 public static void main(String[] args) {
  
  ClickButton cbt=new ClickButton();
  cbt.setKey("image");
  cbt.setName("回復(fù)圖片");
  cbt.setType("click");
   
   
  ViewButton vbt=new ViewButton();
  vbt.setUrl("http://www.cuiyongzhi.com");
  vbt.setName("博客");
  vbt.setType("view");
   
  JSONArray sub_button=new JSONArray();
  sub_button.add(cbt);
  sub_button.add(vbt);
   
   
  JSONObject buttonOne=new JSONObject();
  buttonOne.put("name", "菜單");
  buttonOne.put("sub_button", sub_button);
   
  JSONArray button=new JSONArray();
  button.add(vbt);
  button.add(buttonOne);
  button.add(cbt);
   
  JSONObject menujson=new JSONObject();
  menujson.put("button", button);
  System.out.println(menujson);
  //這里為請(qǐng)求接口的url +號(hào)后面的是token,這里就不做過多對(duì)token獲取的方法解釋
  String url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+"upeDW-2pWrHgLx3fGqgsvAvf-HkQBA--5uHOo9OW16uNdL9zNPnnuIN01UDFXh_5d-QdcnBxux9tXigFwm1z0SInbdkXEKa1pMhTqaZVxK7sCPj7421YQGI0v3evwiwiWALjAHASWH";
   
  try{
   String rs=HttpUtils.sendPostBuffer(url, menujson.toJSONString());
   System.out.println(rs);
  }catch(Exception e){
   System.out.println("請(qǐng)求錯(cuò)誤!");
  }
  
 }
 
}

Le processus de base du code ci-dessus est d'appeler les deux entités de vue et de cliquer pour encapsuler la cha?ne json menujson, et enfin appelez la méthode send pour envoyer le json au serveur Tencent, mais ici vous devez utiliser le token généré par le compte, je l'ai directement codé en dur ici (voir comment obtenir le token), et l'exécution finale renvoie le résultat ok, comme suit?:

Menu personnalisé Les fonctions implémentées sont essentiellement les suivantes. Le prochain article parlera de [Plateforme publique WeChat (map.weixin.qq.com)/open. plateforme (open.weixin.qq.com)/plateforme marchande (pay.weixin.qq.com) ] J'espère que cela pourra vous aider. Merci d'avoir lu. Si vous avez des questions, vous pouvez laisser un message pour en discuter !

[Recommandations associées]

1. Téléchargement du code source de la plateforme de compte public WeChat

2. Code source de vote WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment gérer les transactions en Java avec JDBC? Comment gérer les transactions en Java avec JDBC? Aug 02, 2025 pm 12:29 PM

Pour gérer correctement les transactions JDBC, vous devez d'abord désactiver le mode de validation automatique, puis effectuer plusieurs opérations, et enfin vous engager ou randonner en fonction des résultats; 1. Appelez Conn.SetAutoCommit (false) pour démarrer la transaction; 2. Exécuter plusieurs opérations SQL, telles que l'insertion et la mise à jour; 3. Appelez Conn.Commit () Si toutes les opérations sont réussies, et appelez Conn.Rollback () Si une exception se produit pour garantir la cohérence des données; Dans le même temps, les ressources TRY-With doivent être utilisées pour gérer les ressources, gérer correctement les exceptions et cl?turer les connexions pour éviter la fuite de connexion; De plus, il est recommandé d'utiliser des pools de connexion et de définir des points de sauvegarde pour réaliser un retour en arrière partiel, et de maintenir les transactions aussi courtes que possible pour améliorer les performances.

Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Aug 04, 2025 pm 12:48 PM

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

Passez l'exemple de l'exemple de journalisation du middleware http Passez l'exemple de l'exemple de journalisation du middleware http Aug 03, 2025 am 11:35 AM

HTTP Log Middleware dans GO peut enregistrer les méthodes de demande, les chemins de requête, la propriété intellectuelle du client et le temps qui prend du temps. 1. Utilisez http.handlerfunc pour envelopper le processeur, 2. Enregistrez l'heure de début et l'heure de fin avant et après l'appel Suivant.Servehttp, 3. Obtenez le vrai client IP via R.RemoteAddr et X-Forwared-For Headers, 4. Utilisez le log.printf aux journaux de demande de sortie, 5. L'exemple de code complet a été vérifié pour s'exécuter et convient au démarrage d'un projet petit et moyen. Les suggestions d'extension incluent la capture des codes d'état, la prise en charge des journaux JSON et le suivi des ID de demande.

Comment fonctionne la collection Garbage en Java? Comment fonctionne la collection Garbage en Java? Aug 02, 2025 pm 01:55 PM

La collecte des ordures de Java (GC) est un mécanisme qui gère automatiquement la mémoire, ce qui réduit le risque de fuite de mémoire en récupérant des objets inaccessibles. 1. GC juge l'accessibilité de l'objet de l'objet racine (tel que les variables de pile, les threads actifs, les champs statiques, etc.), et les objets inaccessibles sont marqués comme des ordures. 2. Sur la base de l'algorithme de compensation de marque, marquez tous les objets accessibles et effacez des objets non marqués. 3. Adopter une stratégie de collecte générationnelle: la nouvelle génération (Eden, S0, S1) exécute fréquemment MinorGC; Les personnes agées fonctionnent moins, mais prend plus de temps pour effectuer MajorGC; Metaspace Stores Metadata de classe. 4. JVM fournit une variété de périphériques GC: SerialGC convient aux petites applications; Le parallelGC améliore le débit; CMS réduit

Utilisation de types HTML ?Entrée? pour les données utilisateur Utilisation de types HTML ?Entrée? pour les données utilisateur Aug 03, 2025 am 11:07 AM

Le choix du bon type HTMLinput peut améliorer la précision des données, améliorer l'expérience utilisateur et améliorer la convivialité. 1. Sélectionnez les types d'entrée correspondants en fonction du type de données, tels que le texte, le courrier électronique, le tel, le numéro et la date, qui peuvent vérifier automatiquement la somme de la somme et l'adaptation au clavier; 2. Utilisez HTML5 pour ajouter de nouveaux types tels que l'URL, la couleur, la plage et la recherche, qui peuvent fournir une méthode d'interaction plus intuitive; 3. Utilisez l'espace réservé et les attributs requis pour améliorer l'efficacité et la précision du remplissage des formulaires, mais il convient de noter que l'espace réservé ne peut pas remplacer l'étiquette.

Comparaison des outils de construction Java: Maven vs Gradle Comparaison des outils de construction Java: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

Comment utiliser le modèle d'observateur en Java? Comment utiliser le modèle d'observateur en Java? Aug 02, 2025 am 11:52 AM

La réponse claire à cette question est la recommandation d'implémenter le modèle d'observateur à l'aide d'une interface d'observateur personnalisée. 1. Bien que Java offre observable et observateur, le premier est une classe et a été obsolète et manque de flexibilité; 2. La pratique recommandée moderne consiste à définir une interface d'observateur fonctionnel, et le sujet maintient la liste des observateurs et informe tous les observateurs lorsque l'état change; 3. Il peut être utilisé en combinaison avec les expressions de lambda pour améliorer la simplicité et la maintenabilité du code; 4. Pour les scénarios GUI ou Javabean, PropertyChangeListener peut être utilisé. Par conséquent, les nouveaux projets devraient adopter un schéma d'interface d'observateur personnalisé, qui est sécurisé, facile à tester et se spécialise dans le Java moderne

Utilitaires de concurrence Java: exécutor-service et fourche / jointure Utilitaires de concurrence Java: exécutor-service et fourche / jointure Aug 03, 2025 am 01:54 AM

ExecutorService convient à l'exécution asynchrone des taches indépendantes, telles que les opérations d'E / S ou les taches de synchronisation, en utilisant le pool de threads pour gérer la concurrence, soumettre des taches exécutables ou appelables via la soumission et obtenir des résultats avec l'avenir. Faites attention au risque de files d'attente illimités et fermez explicitement le pool de threads; 2. Le cadre Fork / Join est con?u pour les taches à forte intensité de processeur divisée, en fonction des méthodes de partitionnement et de la controverse et des algorithmes de vol de travail, et réalise la séparation récursive des taches via RecursiveTask ou récursiveAction, qui est planifiée et exécutée par Forkjoinpool. Il convient aux grands scénarios de sommation et de tri des tableaux. Le seuil divisé doit être réglé raisonnablement pour éviter les frais généraux; 3. Base de sélection: indépendant

See all articles