Rumah > Artikel > applet WeChat > Analisis ringkas tentang cara mencipta kod program mini secara dinamik
Artikel ini akan memperkenalkan kepada anda cara membuat kod program mini secara dinamik melalui pembangunan awan program mini WeChat saya harap ia akan membantu anda!
Disebabkan banyak perkara di sekolah dan tempat kerja, saya telah lama meninggalkan "bertani". Dalam tempoh masa ini, saya belajar banyak dan mengusahakan hampir 10 projek, besar dan kecil Semasa proses ini, saya semakin sedar tentang kepentingan rakaman, jadi saya terfikir untuk meluangkan masa daripada jadual sibuk saya untuk menulis. blog dan rekod Mari kita bercakap tentang beberapa perkara pengetahuan dalam proses pembangunan. Ia adalah klise, bukan sahaja supaya saya boleh melihat kembali pada masa akan datang, tetapi juga dengan harapan saya dapat membantu mereka yang memerlukan. [Cadangan pembelajaran berkaitan: Tutorial Pembangunan Program Mini]
3. Analisis idea
Dengan merujuk kepada dokumentasi pembangunan program mini WeChat, kita boleh mengetahui bahawa secara umum terdapat dua cara untuk menjana kod QR jenis ini dengan parameter (kod program mini jenis ini dengan parameter dilukis). Apabila pada poster, anda boleh menggunakan parameter kod QR ini untuk mengenal pasti pengguna yang menjana poster Apabila pengguna lain mengimbas kod untuk memasuki program mini, ID yang dikenal pasti boleh disimpan dalam pangkalan data untuk menentukan siapa yang menjemput poster. daripada orang.
Sudah terlalu lama saya tidak mengekod, jadi mungkin agak sukar untuk mengatakannya.
Untuk meringkaskan: mengikut parameter kod QR untuk menentukan poster siapa, parameter ini mesti dapat mengesan pengguna Secara umumnya, openid pengguna boleh digunakan sebagai parameter pengenalan ini .Contoh mudah (pembangunan awan):
Tentukan koleksi:
penggunaTerdapat dua pengguna
U1
U2字段名 | 值 | 说明 |
---|---|---|
_id | 123456789 | 使用云数据库自动生成的id即可,不用自己生成 |
_openid | 112233 | 插入数据时会自带有,也是一个系统字段 |
superiorId | 445566 | 上级的openid字段 |
字段名 | 值 | 说明 |
---|---|---|
_id | 987654321 | 使用云数据库自动生成的id即可,不用自己生成 |
_openid | 556677 | 插入数据时会自带有,也是一个系统字段 |
superiorId | 112233 | 上级的openid字段 |
Kemudian apabila kita perlu mengira bilangan orang yang telah dijemput oleh U1, kita boleh menanyakan berapa ramai pengguna dalam data yang nilai superiorIdnya adalah sama dengan openid U1.
4. Dua kaedah pelaksanaan utama
Laluan 1: Kod Program MiniWeChat memberi kita tiga cara untuk menjana kod program mini secara dinamik Di sini saya hanya akan bercakap tentang awan Kaedah panggilan dibangunkan oleh pelayan tradisional dan boleh dikendalikan mengikut dokumentasi Prinsipnya lebih kurang sama.
1.Antara muka: wxacode.createQRCode
2 3Antara muka B: wxacode.getUnlimitedBuat jadual untuk menganalisis ketiga-tiga antara muka ini Untuk pengenalan terperinci, klik pada tajuk Akses terus kepada dokumen rasmi.
Seperti yang anda lihat, antara muka AC sebenarnya adalah sama, dan kaedah penggunaan sebenar adalah serupa, tetapi parameternya berbeza.
Perbezaan antara antara muka AC dan antara muka B terletak pada had bilangan penjanaan dan panjang parameter dibawa . Oleh itu, apabila memilih, anda mesti mempertimbangkan dua syarat bilangan yang dihasilkan dan panjang parameter yang dibawa.
Setelah membandingkan secara ringkas tiga antara muka kod program mini, mari kita ambil lihat Lihat ciri-ciri kod QR biasa ini. Jika tiga antara muka di atas tidak dapat memenuhi keperluan perniagaan, contohnya, jika parameter panjang dan bilangan item yang dijana adalah sangat besar, anda boleh cuba melaksanakannya melalui kod QR biasa ini.
Berbanding dengan antara muka, bilangan kod QR yang dihasilkan adalah tidak terhad, teori parameter boleh menjadi sangat panjang (saya belum mencuba panjang tertentu, tetapi ia pasti lebih panjang daripada 128), dan had masa adalah juga jangka panjang. Dari sudut ini, nampaknya walau apa pun senario perniagaan, kaedah ini adalah pilihan yang tepat?
Sudah tentu tidak, sekurang-kurangnya dua aspek ini perlu dipertimbangkan untuk kod QR biasa.
1. Skop terbuka: program kecil untuk perusahaan, media, kerajaan dan organisasi lain. Dalam erti kata lain, ia tidak menyokong pembukaan dan penggunaan akaun pembangun peribadi.
2. Ia agak rumit untuk dibangunkan dan memerlukan pelayan dan nama domain untuk konfigurasi. Akan ada banyak perangkap.
Memandangkan pelaksanaan kaedah ini agak rumit, saya tidak akan menerangkan secara terperinci di sini Rakan-rakan yang mempunyai keperluan dalam hal ini boleh menghantar mesej peribadi kepada saya untuk berkomunikasi dan belajar daripada satu sama lain.
Satu perkara terakhir yang perlu diberi perhatian ialah: tidak kira cara mana pun ia dilaksanakan, program mini mesti dikeluarkan sebelum ia boleh diimbas dan digunakan secara normal.
Antara muka B adalah serupa dengan antara muka AC Anda boleh pergi terus ke tapak web rasmi untuk melihat contoh kod. Ia sepatutnya boleh membuat persamaan. Jadi di sini saya hanya menggunakan salah satu antara muka AC. Perkara utama adalah untuk menimbulkan beberapa soalan biasa.
1. Selepas mencipta fungsi awan baharu, konfigurasikan kebenaran dalam fail config.json (ambil createQRCode sebagai contoh)
2. kod index.js
const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event) => { try { const result = await cloud.openapi.wxacode.createQRCode({ path: event.path, width: event.width }) return result } catch (err) { return err } }
3. Panggil (jika tidak menyahpepijat secara setempat, ingat untuk menyerahkan fungsi awan)
if (posterType == 1) { // 配置页面路径以及参数 path = "pages/indexStudent1/indexStudent1?superiorId1=" + superiorId1 + "&superiorId2=" + superiorId2 } else if (posterType == 2) { path = "pages/teacherSubmit/teacherSubmit?superiorId=" + superiorId2 } // 调用云函数,请求生成小程序码 buffer 数据 const QRCodeObj = await wx.cloud.callFunction({ name: 'createQRCode', data: { path: path, width: 430 } }) // 需要注意的是返回来的数据是Buffer格式 // 需要转换成为base64格式(为了方便存储复用,毕竟次数有限) const base64 = "data:image/jpeg;base64," + wx.arrayBufferToBase64(QRCodeObj.result.buffer.data) // 将数据直接扔进image组件的src参数里面即可 this.setData({ imgUrl: base64 })
4. wxml
5. > 6. Penerangan dan pengoptimuman
Baru memintas sebahagian daripada kod kunci. Kod program kecil juga telah diproses.
Kod yang mencetuskan fungsi dan melaksanakan penggunaan semula tidak disiarkan (atas sebab keselamatan, adalah menyusahkan untuk menyiarkannya).Apabila mengoptimumkan, langkah pertama pasti mempertimbangkan penggunaan semula, iaitu, pengguna baharu memanggil fungsi awan untuk menjananya buat kali pertama, dan pada kali seterusnya, ia akan dibaca terus daripada pangkalan data untuk menjananya.
Sudah tentu, premisnya adalah bahawa parameter adalah konsisten.
Mengapa menggunakannya semula? Sebab utamanya ialah walaupun ia adalah kod QR yang sama, parameternya adalah sama Jika anda memanggil fungsi itu sepuluh kali untuk menjananya, ia masih sepuluh kod, bukan satu kod. Oleh itu, apabila bilangannya terhad, pertimbangkan untuk menggunakan semula sebanyak mungkin.
Jika artikel ini membantu anda, sila berikan like. Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
Video Pengaturcaraan! !
Atas ialah kandungan terperinci Analisis ringkas tentang cara mencipta kod program mini secara dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!