qrcodejs
qrcodejs copied to clipboard
安卓新机不支持。版本android9,已找到原因
作者判断时候是判断X.0版本号的(X为1-9),而新机(如 华为mate20)安卓版本号为9,并非9.0,故判断不到,所以导致生成不了二维码。故将n方法里改为如下图代码即可
thanks so much
@uhowep happy to help you
666,thanks
@zc422
@LLprince 😄
改一下版本号的正则表达式不是更简单吗? var aMat = sAgent.toString().match(/android ([0-9].[0-9])/i); 这句话改为 var aMat = sAgent.toString().match(/android (([0-9]).?[0-9]?)/i);
试了还是不行,二维码是能生成,但是长按没反应
@xuzpeng ,在微信里长按没反应吗?
@xiaoxiaoyisheng 当时没管那么多。🤔
@zc422 是的,就安卓9就不行,其他都行,二维码是正常生成了的,之前也是正常,升级了系统就凉了
@xuzpeng 方便发代码来看下吗
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:
@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;
}
源码我都试了还是不行。。
作者为啥不把修复过的代码添加到仓库里,我看仓库里的代码还是旧的。
@我跟他一样的问题
解决了吗
@xikedafeige 有没网址我看看,或者发代码。
@xuzpeng 作者应该没有维护了,你的图片是放在画布里还是ing里
我也是android 9 不行,二维码是能生成,但是长按没反应。
@blue7cat 发网址或者代码
@blue7cat 估计是布局问题,你可以试下长按你步骤图片的左上角会出来识别二维码。然后百度查下微信识别二维码的机制调整下就好了
@zc422 非常感谢
@zc422 好使
感谢
如果将来有 Android 10 的话这个正则就失效了,建议使用 /android ([0-9]+\.?[0-9]?)/i
@elvinn 是的,Android Q已经出了🤒
安卓10和10以上无法画出二维码,因为作者的正则过时了,当时作者写表达式匹配的时候手机还没有出道安卓10以上 qrcode.js _getAndroid 方法里面的正则判断改为:var aMat = sAgent.toString().match(/([aA])ndroid ([0-9.]*)/i);