图中的二维码,安卓手机没有识别二维码,到了ios就有了。。。。
生成卡片这个方法,ios跟安卓走的都一样啊。。。。
附上一段代码,,二维码圆角处理
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跟安卓画圆角的处理方法。。。