怎样生成二维码并显示?

试过了,一样的,使用的最新的1.4.0版本

麻烦你把项目发下,你的方法:four_leaf_clover:我也没有成功

assets.zip (10.7 KB)

lib下的qrcode脚本是生成二维码的算法,需要导入为插件。
QRCode脚本负责绘制二维码,因为drawcall太高,代码我简单改了下

降低Graphics的drawcall,参见我另一个帖子:Creator1.4 : 单个Graphics的DrawCall数很多是什么问题?

5赞

可以了,但上下需要反转一下,不过不影响使用都能扫出来。

有办法再贴一张logo图吗?

你直接在二维码上面加上logo图片就行了 大小不要超过二维码的40%就行

@toddlxt 感谢你的推荐
之前是使用的cc.graphics画出二维码,其他浏览器和原生都没有任何问题,唯独IE11,总是会出现画出一半的情况。
用了@toddlxt 推荐的插件,解决此问题

打包到微信开发者工具不能用吗?

打包到微信开发者程序中能正常运行吗

这个是我用别人的js组件,写的demo项目。组件直接在空白UI上嵌入代码,还是蛮方便的。
demo项目地址
demo在线预览

2赞

这个H5和原生都可以用吗

mark~必须mark

maek

qrcode导入插件, new QRCode(-1, QRErrorCorrectLevel.H)报错,QRCode引用自哪里

3.3 导入报错


js这版用不了,不纠结了,花了一个小时转成ts了
qrcode.zip (12.4 KB)

5赞

先赞:+1: 后 mark ,顺便 拍个马屁 大佬NB

Hi, how to use please!

        let node = this.views["qr_code_node"]
        var qrcode = new QRCode(-1, QRErrorCorrectLevel.H);
		qrcode.addData('http://www.baidu.com');		
		qrcode.make();

		var ctx = node.getComponent(Graphics)!;
		ctx.fillColor = Color.BLACK;		
		var tileW = node.getComponent(UITransform)!.width / qrcode.getModuleCount();
		var tileH = node.getComponent(UITransform)!.height / qrcode.getModuleCount();

		// draw in the Graphics
		for (var row = 0; row < qrcode.getModuleCount(); row++) {
			for (var col = 0; col < qrcode.getModuleCount(); col++) {
				if (qrcode.isDark(row, col)) {					
					var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
					var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW));
					ctx.rect(Math.round(col * tileW), Math.round(row * tileH), w, h);
					ctx.fill();
				} else {
					// ctx.fillColor = cc.Color.WHITE;
				}
				var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
			}
		}
    }
1赞

真是个好哥哥

这个好哥哥的代码可以用 我3.5.1也能跑起来 放一个demo
firewood_qrcode_ts_3.x_.zip (63.1 KB)

1赞