小程序二维码,官方人员进来看看啊
发布于 7 年前 作者 yifang 5093 次浏览 来自 问答

图中的二维码,安卓手机没有识别二维码,到了ios就有了。。。。

生成卡片这个方法,ios跟安卓走的都一样啊。。。。

2 回复

仅在预览下进行识别

附上一段代码,,二维码圆角处理

if (util.ENV_TYPE.IOS()) {

util.roundRect(ctx, that.data.canvasImg[2].path, 36, 235, 30, 30, 15);

util.roundRect(ctx, that.data.canvasImg2, 29, 304, 45, 45, 12);

} else {

util.circleRect(ctx, that.data.canvasImg[2].path, 36, 235, 15);

ctx.drawImage(that.data.canvasImg2, 29, 304, 50, 50)

}

这是判断手机是安卓还是ios,然后采用不同的圆角处理

exports.roundRect = function(ctx, imgPath, x, y, w, h, r) {

ctx.save(); //保存绘图上下文

ctx.beginPath()

ctx.setFillStyle(‘transparent’)

ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)

ctx.moveTo(x + r, y)

ctx.lineTo(x + w - r, y)

ctx.lineTo(x + w, y + r)

ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)

ctx.lineTo(x + w, y + h - r)

ctx.lineTo(x + w - r, y + h)

ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)

ctx.lineTo(x + r, y + h)

ctx.lineTo(x, y + h - r)

ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)

ctx.lineTo(x, y + r)

ctx.lineTo(x + r, y)

ctx.fill();

//ctx.stroke();

ctx.closePath()

ctx.clip()

ctx.drawImage(imgPath, x, y, w, h);

ctx.restore(); //恢复之前保存的

ctx.draw(true)

}

exports.circleRect = function (ctx, imgPath, x, y, r){

ctx.save();

let d = 2 * r;

let cx = x + r;

let cy = y + r;

ctx.arc(cx, cy, r, 0, 2 * Math.PI);

ctx.clip();

ctx.drawImage(imgPath, x, y, d, d);

ctx.restore();

ctx.draw(true)

}

分别是ios跟安卓画圆角的处理方法。。。

回到顶部