需求
需要制作一个二维码页面供文案插入到微信文章的跳转链接中,用户识别该页面中的二维码后跳转到指定页面。
之前因为频次(每1-2周变更一次)和图片(图片并不只是一个二维码,还存在着ICON和一些背景样式)的关系,每次都是制作完图片后重新copy一个页面使用。随着现在使用频次逐渐变高和手上的事情趋于稳定之后,打算制作一个通用的二维码页面,以url参数传递需要跳转的网址之后页面上自动生成二维码。
效果如下
![]()
方案
二维码使用jquery_qrcode.js生成。
1.使用DIV的position定位位置,拼接图片
2.使用canvas拼接图片
制作
考虑到之前并没有使用过canvas的经验,首选就是div定位的方式去制作。
制作完成之后进入微信测试,发现微信的识别范围应该是图片自身的大小(之前在某文章内看到微信在长按时会自动识别页面内的二维码,现在发现是在扯淡了)。
![]()
看来DIV的方式是走不通了,于是开始尝试下canvas制作。
最开始走入了一个误区,代码如下
1 2 3 4 5 6 7 8 9 10 11
| var canvas = document.getElementById("canvas");
canvas.drawImage(xxx,0,0);
var cxt = canvas.getContext("2d"); var bgImage = new Image(); bgImage.src = $('.XXX').attr('src'); bgImage.onload = function(){ cxt.drawImage(bgImage,0,0); };
|
另外canvas的绘制有可能出现后发先至的情况,建议多图绘制时 使用回调进行连续操作。
1 2 3 4 5 6 7 8 9 10 11 12 13
| function step1(){ step1.onload = function(){ cxt.drawImage(step1,0,0); step2(); } }
function step2(){ ... }
...
|