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