时间:2019-05-07 来源:小程序工厂
1、生成海报这种工作呢,最好是交由后端来完成-后端有生成图片的API;
后端可以直接根据微信小程序码生成的接口生成微信小程序码:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/createWXAQRCode.html?search-key=%E5%B0%8F%E7%A8%8B%E5%BA%8F%E7%A0%81
2、目标页面如果接收参数提前在onLoad里面做好scene处理,记得decode
3、生成海报需要一段时间,需要给出loading提示
3.1、如果不需要在海报上附上当前用户信息,可以进页面静默调接口生成
3.2、如果需要用户信息,记得用botton组件先获取用户信息https://developers.weixin.qq.com/miniprogram/dev/component/button.html将用户信息传给后端
4、后端给到海报URL之后,根据需求看是用previewImage直接打开图片,这样自己不用做长按保存的处理;还是自己把图片显示在页面上,这样就需要对图片进行长按catchlongtap处理;
注意:保存图片需要做权限判断做对应处理,需要先download
希望能够帮到你
设置一下服务器域名,把二维码图片的域名加到 downloadFile合法域名
需要把图片缓存到本地才行,
我是没有出现过,二维码能显示,就是别的图片有时候就显示不出来
你是用canvas合成的吧,要把图片下载至缓存,然后合成。真机无法直接使用网络图片合成
canvas 真机需要下载到缓存是最近出现的问题吗?
很早就有了,我是去年就发现有这个问题
多谢 那我再看下
不知道,暂时用不起iPhone X,其他手机都正常吗??
手机都不能显示,只有开发工具显示
你那个微信小程序码是单独写的吗???只能说canvas层级很高,可能把你那个微信小程序码覆盖了
我那个微信小程序码是在海报里的,不是单独的二维码
你说的不兼容。是所有手机不显示??。。然后你说不显示是整个海报都不显示???。。如果他是一张海报,为什么你说只是红色区域不显示
所有手机都不显示,我那个二维码是写入到海报的。你看这个代码
大佬,是不是微信小程序码必须要用这种图片才能上到海报画布上去
你绘制的图片是本地图还是网络图??
本地图片,都是在我服务器上的
合法的,配置了
你方便贴下代码???
canvasImg: function() {
var m = this, u = wx.createCanvasContext("myCanvas");
wx.getImageInfo({
src: m.data.hbimg,
success: function(t) {
var a = m.data.windowWidth, e = m.data.windowWidth / t.width * t.height;
u.setFillStyle("white"), u.fillRect(0, 0, a, e + 240), u.drawImage(m.data.hbimg, 0, 0, a, e);
var i = m.data.title, n = i.length, o = "", d = 0, s = i.split(""), l = u, h = e + 20;
l.textAlign = "left", u.setFillStyle("black"), u.setFontSize(15);
for (var c = 0; c <= n; c++) {
19 == d && (l.fillText(o, 10, h), h += 20, o = "", d = 0), c == n && l.fillText(o, 10, h);
o = o + s[0];
d++, s.shift();