今天遇到的坑,直接传参,正常参数都能接收到,但是就是url参数值接收后NaN.
后来去网上搜索一下说路径必须编码才可以,分享出来就是希望大家不要跟我一样遇到这种坑~~~
onShareAppMessage: function (options)
return {
title: '标题',
path: '/pages/index/index?index'id=123&str=' + JSON.stringify(obj)+ '&path=' + encodeURIComponent(url),
}
}
注意的点:
参数值是对象:JSON.stringify(obj) 接收:JSON.parse(obj)
参数值是路径:encodeURIComponent(url) 接收:decodeURIComponent(url)
获取带有分享者信息的小程序码是用在导出朋友圈海报这个功能,踩了一些坑,记录一下。本文主要是介绍如何获取带有分享者信息的小程序码。
目标有两个,首先要获取小程序码;其次需要带有分享者信息。
获取小程序码
首先,先看看小程序文档,获取二维码。文档提供了三个接口,根据自己需求使用不同接口,本文使用了接口 B。接口 B 的特点是通过该接口生成的小程序码,永久有效,数量暂无限制。
简单来说,就是调用文档提供的接口,发送必要的参数,就可以获取小程序码了。当然,一定没有那么简单。需要注意以下几点:
- 不能前端直接调用该接口
- base64 在手机上无效
为什么不能前端直接调用该接口?
获取二维码的接口需要传一个access_token 参数,这个参数当然也可以通过后端获取。但是access_token是公众号的全局唯一接口调用凭据,建议公众号开发者使用中控服务器统一获取和刷新Access_token。这样子就只有通过服务端获取小程序码,然后从服务端获取就行了。
base64
一开始想到的就是服务端拿到小程序码后,返回前端一个 base64 字符串。可是真机调试发现,小程序 canvas 暂不支持base64,目前只支持了本地图片和网络图片。所以,让后端同事返回一个图片链接就好了。
这里需要注意的是,获取小程序码的接口返回的是一个二进制流,需要后端读取并保存到服务器上。然后在使用完小程序码后,一定要让后端同事提供一个接口删除相应的小程序码文件哦,不然图片文件会越来越多。
小程序码带参数
获取小程序码的接口B 提供了一个参数scene,有长度限制。所以我只在里面给了用户 id,通过保存在小程序码中的用户 id 就能区分用户啦。