qrcodejs icon indicating copy to clipboard operation
qrcodejs copied to clipboard

安卓新机不支持。版本android9,已找到原因

Open zc422 opened this issue 6 years ago • 27 comments

作者判断时候是判断X.0版本号的(X为1-9),而新机(如 华为mate20)安卓版本号为9,并非9.0,故判断不到,所以导致生成不了二维码。故将n方法里改为如下图代码即可 image

zc422 avatar Nov 12 '18 02:11 zc422

thanks so much

uhowep avatar Dec 22 '18 13:12 uhowep

@uhowep happy to help you

zc422 avatar Dec 22 '18 14:12 zc422

666,thanks

LLprince avatar Dec 29 '18 09:12 LLprince

@zc422

LLprince avatar Dec 29 '18 09:12 LLprince

@LLprince 😄

zc422 avatar Dec 29 '18 09:12 zc422

改一下版本号的正则表达式不是更简单吗? var aMat = sAgent.toString().match(/android ([0-9].[0-9])/i); 这句话改为 var aMat = sAgent.toString().match(/android (([0-9]).?[0-9]?)/i);

xiaoxiaoyisheng avatar Feb 21 '19 11:02 xiaoxiaoyisheng

试了还是不行,二维码是能生成,但是长按没反应

spencer17x avatar Feb 28 '19 03:02 spencer17x

@xuzpeng ,在微信里长按没反应吗?

zc422 avatar Feb 28 '19 03:02 zc422

@xiaoxiaoyisheng 当时没管那么多。🤔

zc422 avatar Feb 28 '19 03:02 zc422

@zc422 是的,就安卓9就不行,其他都行,二维码是正常生成了的,之前也是正常,升级了系统就凉了

spencer17x avatar Feb 28 '19 03:02 spencer17x

@xuzpeng 方便发代码来看下吗

zc422 avatar Feb 28 '19 03:02 zc422

js: new QRCode($('.qrcode')[0], { text: "https://xcx.hexiaoxiang.com/cup_race?refer_id=" + refer_id + "&record_id=" + record_id, width: 128, height: 128 });

html:

spencer17x avatar Feb 28 '19 04:02 spencer17x

@zc422 function _getAndroid() { var android = false; var sAgent = navigator.userAgent;

	if (/android/i.test(sAgent)) { // android
		android = true;
		var aMat = sAgent.toString().match(/android ([0-9].?[0-9]?)/i);
		
		if (aMat && aMat[1]) {
			android = parseFloat(aMat[1]);
		}
	}
	
	return android;
}

源码我都试了还是不行。。

spencer17x avatar Feb 28 '19 04:02 spencer17x

作者为啥不把修复过的代码添加到仓库里,我看仓库里的代码还是旧的。

spencer17x avatar Feb 28 '19 09:02 spencer17x

@我跟他一样的问题

xikedafeige avatar Mar 11 '19 02:03 xikedafeige

解决了吗

xikedafeige avatar Mar 11 '19 02:03 xikedafeige

@xikedafeige 有没网址我看看,或者发代码。

zc422 avatar Mar 11 '19 08:03 zc422

@xuzpeng 作者应该没有维护了,你的图片是放在画布里还是ing里

zc422 avatar Mar 11 '19 08:03 zc422

我也是android 9 不行,二维码是能生成,但是长按没反应。

blue7cat avatar Mar 11 '19 09:03 blue7cat

@blue7cat 发网址或者代码

zc422 avatar Mar 11 '19 09:03 zc422

@blue7cat 估计是布局问题,你可以试下长按你步骤图片的左上角会出来识别二维码。然后百度查下微信识别二维码的机制调整下就好了

zc422 avatar Mar 11 '19 09:03 zc422

@zc422 非常感谢

blue7cat avatar Mar 11 '19 10:03 blue7cat

@zc422 好使

westdrug avatar Apr 20 '19 11:04 westdrug

感谢

yaohaohao-xinqing avatar May 08 '19 03:05 yaohaohao-xinqing

如果将来有 Android 10 的话这个正则就失效了,建议使用 /android ([0-9]+\.?[0-9]?)/i

elvinn avatar Jun 24 '19 07:06 elvinn

@elvinn 是的,Android Q已经出了🤒

zc422 avatar Jun 24 '19 08:06 zc422

安卓10和10以上无法画出二维码,因为作者的正则过时了,当时作者写表达式匹配的时候手机还没有出道安卓10以上 qrcode.js _getAndroid 方法里面的正则判断改为:var aMat = sAgent.toString().match(/([aA])ndroid ([0-9.]*)/i);

SkyLandBeast avatar Aug 09 '21 07:08 SkyLandBeast