微信开发手册

一 微信扫码H5页面播放视频/音频

二 微信自定义分享形式

三 生成微信小程序二维码

介绍

调用微信API生成小程序二维码。支持定向到特定页面和传入参数。但是这个接口应该在服务端调用,目前调用返回的数据前端还无法处理!
官方介绍>>
微信开发手册_第1张图片

使用方式

文档

调用方式:

POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

下面是从官方文档复制而来,具体以官方为准。

属性 类型 默认值 必填 说明
access_token string 接口调用凭证
scene string 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
page string 主页 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
width number 430 二维码的宽度,单位 px,最小 280px,最大 1280px
auto_color boolean false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
line_color Object {"r":0,"g":0,"b":0} auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
is_hyaline boolean false 是否需要透明底色,为 true 时,生成透明底色的小程序

注意事项

  • 通常我们只需要关注 access_tokenpagescene
  • scene 用于传递参数,我们平时用到的自字符一般不需要自行编码,微信API会进行编码。格式:u=123&m=456 相当于 pages/xxx/index?scene=(encodeURLComponent(u=123&m=456))
  • scene 有长度限制,为了避免超出长度限制,建议压缩参数内容: 

    • 使用位置标记代替kv, 比如: userId=${userId}&missionId=${missionId}&idSign=${idSign(32位)} 变成 ${userId}_${missionId} _${idSign(6位)}
    • 传入一个凭证,到达小程序之后通过这个凭证再把写一个接口参数查询出来
  • page: 小程序页面路径,根路径前不要填加 /,不能携带参数

Buffer文件处理

由于小程序返回的是buffer文件,所以想要拿到前端可用的图片文件还需要额外处理。
下面是在node中的处理:上传buffer文件,拿到文件地址。

const bufferArrary = [137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,1,0,0,0,1,1,3,0,0,0,37,219,86,202,0,0,0,6,80,76,84,69,0,0,255,128,128,128,76,108,191,213,0,0,0,9,112,72,89,115,0,0,14,196,0,0,14,196,1,149,43,14,27,0,0,0,10,73,68,65,84,8,153,99,96,0,0,0,2,0,1,244,113,100,166,0,0,0,0,73,69,78,68,174,66,96,130];
const array = Uint8Array.from(bufferArrary);
const blob = new Blob([array], {type: 'image/png'});
const form = new FormData();
form.append('file', blob, '1.png');
axios.post('http://localhost:7787/files', form);

小程序端使用

小程序端想要拿到参数需要解析query里面的scene

参数接收

解析storeNo:
微信开发手册_第2张图片

onLoad(options) {
  const scene = decodeURIComponent(options.scene);
  const storeNo = scene.split('=')[1]
  if (storeNo) {
    console.log(storeNo); 
  } else {
    console.error('生成二维码出现问题');
  }
},

多条参数

微信开发手册_第3张图片

const scene = decodeURIComponent(options.scene)
scene.split('&').forEach((item) => {
  const key = item.split("=")[0]
  this.setData({
    [key]: item.split('=')[1]
  })
})

工具

微信内置浏览器清除缓存

安卓

一、随便打开一个聊天窗口,输入 debugx5.qq.com 并发送。
二、点击自己发送的地址,打开 debug 调试页面。
微信开发手册_第4张图片

在这里插入图片描述
拉到调试页面的最底端,勾选上所有的缓存项目,点击清除。

苹果

打开【设置】 →【通用】,→【清理微信缓存】,最后【退出登录】账号,完成。

你可能感兴趣的:(微信)