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

Rumah applet WeChat pembangunan WeChat Java微信開發(fā)之自定義菜單的創(chuàng)建

Java微信開發(fā)之自定義菜單的創(chuàng)建

May 10, 2017 am 09:32 AM
java WeChat Menu tersuai

這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第十步,微信自定義菜單的創(chuàng)建實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下

自定義菜單這個功能在我們普通的編輯模式下是可以直接在后臺編輯的,但是一旦我們進(jìn)入開發(fā)模式之后我們的自定義菜單就需要自己用代碼實現(xiàn),所以對于剛開始接觸的人來說可能存在一定的疑惑,這里我說下平時我們在開發(fā)模式下常用的兩種自定義菜單的實現(xiàn)方式:①不用寫實現(xiàn)代碼,直接用網(wǎng)頁測試工具Post json字符串生成菜單;②就是在我們的開發(fā)中用代碼實現(xiàn)菜單生成?。▍⒖嘉臋n:http://mp.weixin.qq.com/wiki/10/0234e39a2025342c17a7d23595c6b40a.html? )在自定義菜單中菜單的類型分為兩種,一種為view的視圖菜單,點擊之后直接跳轉(zhuǎn)到url頁面;還有一種是click類型的點擊型,后端通過點擊事件類型給與不同的相應(yīng);后面新增了各種特色功能的菜單其本質(zhì)都還是Click類型的菜單,所以生成的規(guī)則都是一樣的,其生成菜單的方式都是向微信服務(wù)器post json字符串生成菜單,下面講述菜單生成的方法和規(guī)則!

(一)使用網(wǎng)頁調(diào)試工具生成菜單

我們通過連接(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? )進(jìn)入到網(wǎng)頁調(diào)試工具,如下圖:

在這里我們生成菜單的時候只需要我們賬號的有效token和json字符串即可,這里的json字符串可以參照文檔中的案例做出修改得到,我這里給出的一個案例如下:

{
 "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"
  }
 ]
}

我們填入響應(yīng)的token,點擊檢查問題如果返回結(jié)果Ok就可以了,如下:

到這里我們采用web測試工具生成菜單的方式就完成了,下面接著介紹用代碼生成菜單!

(二)采用代碼實現(xiàn)菜單的生成

前面我們有說道在菜單中有view和click兩種類型的事件,這里我們首先在代碼中建立兩種類型對應(yīng)的java實體,view類型建立實體ViewButton.java如下:

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;
 }
 
}

同樣的建立click的實體ClickButton.java如下:

package com.cuiyongzhi.wechat.menu;
 
/**
 * ClassName: ClickButton
 * @Description: 點擊型菜單事件
 * @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;
 }
 
}

這里創(chuàng)建兩個實體也是為了方便我們在自定義菜單中對json的封裝,在這里我用代碼的形式封裝了上面給出的同樣的json格式,并調(diào)用生成自定義菜單的接口發(fā)送到微信服務(wù)器,簡單代碼如下:

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);
  //這里為請求接口的url +號后面的是token,這里就不做過多對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("請求錯誤!");
  }
  
 }
 
}

上面代碼的基本流程就是調(diào)用view和click兩個實體封裝json字符串menujson,最后調(diào)用發(fā)送方法將json發(fā)送給騰訊服務(wù)器,但是這里需要用到賬號生成的token,我這里是直接寫死的(可以參見token的獲取方式),最終運(yùn)行返回結(jié)果ok即可,如下:

自定義菜單的功能實現(xiàn)基本就是這些,下一篇將講述【微信公眾平臺(map.weixin.qq.com)/開放平臺(open.weixin.qq.com)/商戶平臺(pay.weixin.qq.com)之間的關(guān)聯(lián)關(guān)系】希望可以對你給出幫助,感謝你的翻閱,如有疑問可以留言討論!

【相關(guān)推薦】

1. 微信公眾號平臺源碼下載

2. 微信投票源碼

Atas ialah kandungan terperinci Java微信開發(fā)之自定義菜單的創(chuàng)建. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Bagaimana menangani transaksi di Java dengan JDBC? Bagaimana menangani transaksi di Java dengan JDBC? Aug 02, 2025 pm 12:29 PM

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

Pergi dengan contoh contoh pembalakan middleware http Pergi dengan contoh contoh pembalakan middleware http Aug 03, 2025 am 11:35 AM

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Bagaimana pengumpulan sampah berfungsi di java? Bagaimana pengumpulan sampah berfungsi di java? Aug 02, 2025 pm 01:55 PM

Koleksi Sampah Java (GC) adalah mekanisme yang secara automatik menguruskan ingatan, yang mengurangkan risiko kebocoran ingatan dengan menuntut semula objek yang tidak dapat dicapai. 1.GC menghakimi kebolehcapaian objek dari objek akar (seperti pembolehubah stack, benang aktif, medan statik, dan lain -lain), dan objek yang tidak dapat dicapai ditandakan sebagai sampah. 2. Berdasarkan algoritma penandaan tanda, tandakan semua objek yang dapat dicapai dan objek yang tidak ditandai. 3. Mengamalkan strategi pengumpulan generasi: Generasi Baru (Eden, S0, S1) sering melaksanakan MinorGC; Orang tua melakukan kurang tetapi mengambil masa lebih lama untuk melakukan MajorGC; Metaspace Stores Metadata kelas. 4. JVM menyediakan pelbagai peranti GC: SerialGC sesuai untuk aplikasi kecil; ParallelGC meningkatkan throughput; CMS mengurangkan

Menggunakan jenis html `input` untuk data pengguna Menggunakan jenis html `input` untuk data pengguna Aug 03, 2025 am 11:07 AM

Memilih jenis htmlinput yang betul dapat meningkatkan ketepatan data, meningkatkan pengalaman pengguna, dan meningkatkan kebolehgunaan. 1. Pilih jenis input yang sepadan mengikut jenis data, seperti teks, e -mel, tel, nombor dan tarikh, yang secara automatik boleh menyemak dan menyesuaikan diri dengan papan kekunci; 2. Gunakan HTML5 untuk menambah jenis baru seperti URL, Warna, Julat dan Carian, yang dapat memberikan kaedah interaksi yang lebih intuitif; 3. Gunakan pemegang tempat dan sifat -sifat yang diperlukan untuk meningkatkan kecekapan dan ketepatan pengisian bentuk, tetapi harus diperhatikan bahawa pemegang tempat tidak dapat menggantikan label.

Membandingkan Java Build Tools: Maven vs Gradle Membandingkan Java Build Tools: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectSduetoitSsuperiorflexibility, Prestasi, danModernToolingSupport.1.Gradle'sGroovy/KOT lindslismoreconciseandexpressivethanmaven'sverbosexml.2.GradleOutPerformsMaveninBuildSpeedWithIncrementalcompilation, BuildCac

Bagaimana menggunakan corak pemerhati di Jawa? Bagaimana menggunakan corak pemerhati di Jawa? Aug 02, 2025 am 11:52 AM

Jawapan yang jelas untuk soalan ini adalah cadangan untuk melaksanakan corak pemerhati menggunakan antara muka pemerhati tersuai. 1. Walaupun Java menyediakan pemerhati dan pemerhati, bekas adalah kelas dan telah ditetapkan dan tidak mempunyai fleksibiliti; 2. Amalan yang disyorkan moden adalah untuk menentukan antara muka pemerhati yang berfungsi, dan subjek mengekalkan senarai pemerhati dan memberitahu semua pemerhati apabila keadaan berubah; 3. Ia boleh digunakan dalam kombinasi dengan ungkapan lambda untuk meningkatkan kesederhanaan dan mengekalkan kod; 4. Bagi senario GUI atau Javabean, PropertyChangeListener boleh digunakan. Oleh itu, projek-projek baru harus mengguna pakai skim antara muka pemerhati tersuai, yang selamat, mudah diuji dan mengkhususkan diri dalam java moden

Bagaimana cara membaca fail CSV di Java? Bagaimana cara membaca fail CSV di Java? Aug 03, 2025 am 11:56 AM

Menggunakan perpustakaan OpencSV adalah pilihan terbaik untuk membaca fail CSV. Ia boleh mengendalikan situasi yang kompleks dan menyokong pelbagai ciri; 2. Untuk fail CSV yang mudah, anda boleh menggunakan bufferedreader terbina dalam Java yang digabungkan dengan kaedah perpecahan; 3. Jika anda memerlukan kawalan format yang lebih fleksibel atau telah menggunakan komponen Apache, anda boleh memilih Apache Commonscsv. OpenCSV disyorkan untuk kesederhanaan, keteguhan dan keupayaan untuk menangani masalah CSV dalam senario sebenar.

See all articles