Rumah >applet WeChat >Pembangunan program mini >Analisis ringkas tentang cara mencipta kod program mini secara dinamik

Analisis ringkas tentang cara mencipta kod program mini secara dinamik

青灯夜游
青灯夜游ke hadapan
2021-11-03 11:09:092976semak imbas

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!

Analisis ringkas tentang cara mencipta kod program mini secara dinamik

1. Pengenalan

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]

2 dan fungsi lain, seperti poster untuk menjemput rakan, membolehkan pengguna menghantar kepada rakan atau memajukan jemputan rakan selepas dijana Pada masa ini, kita perlu tahu pengguna yang anda jemput, supaya kami boleh mengeluarkan ganjaran dengan mudah dan sebagainya. Ini adalah keperluan yang sangat biasa. Jadi bagaimana untuk mencapai keperluan yang sama?

3. Analisis idea

Malah, aspek paling kritikal poster ini ialah kod QR dengan parameter (kod program mini) yang dikenali dengan menekan lama dan mengimbas kod.

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:

pengguna

Terdapat dua pengguna

U1

U2
字段名 说明
_id 123456789 使用云数据库自动生成的id即可,不用自己生成
_openid 112233 插入数据时会自带有,也是一个系统字段
superiorId 445566 上级的openid字段

Dalam jadual data di atas, adalah jelas bahawa U2 masuk dengan mengimbas kod QR (kod program mini) U1, jadi U2 Nilai daripada medan superiorId ialah openid U1
字段名 说明
_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

Seperti yang dinyatakan sebelum ini, terdapat kira-kira dua cara untuk mencapai keperluan ini, jadi mari kita analisa ciri-ciri kedua-dua kaedah pelaksanaan ini. Adalah mudah untuk kita memilih kaedah yang sesuai semasa proses pembangunan.

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

Antara muka C: wxacode.get

3

Antara 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.

Laluan 2: Kod QR Biasa

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.

5. Contoh kod pelaksanaan antara muka AC (pembangunan awan)

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)

Analisis ringkas tentang cara mencipta kod program mini secara dinamik

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

Analisis ringkas tentang cara mencipta kod program mini secara dinamik

5. > 6. Penerangan dan pengoptimuman

Baru memintas sebahagian daripada kod kunci. Kod program kecil juga telah diproses. Analisis ringkas tentang cara mencipta kod program mini secara dinamik

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!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam