今天下午,收到运营提的bug。安卓用户不能在我们的公众号网页上上传图片,选择图片没有反应。
我第一个反应就是,不可能,之前图片还能上传的,怎么今天就不行了。然后,我用几台安卓机子测试,发现把微信更新到6.5.3版本的机子不能上传图片。老版本还能正常上传。
然后我又找了几个有上传图片的网页,有些能用,有些不能。我对比了它们的input后发现,只要accept设置了不是默认值,微信最新版就无法使用这个input标签。
我醉了,这个bug真够坑的。
我们的初衷是,input标签只能识别图片,这导致在安卓上微信6.5.3版本无法使用。虽然还能点开,但是选了图片没有触发事件,也就无法上传图片。
下面是我的解决方案,ios及安卓微信6.5.3之前的input标签只能选择图片,安卓微信6.5.4的input能选择任何文件。
var ua =navigator.userAgent;
var wechatInfo = ua.match(/MicroMessenger\/([\d\.]+)/i);
var filter = [{title: "Image files",
extensions: "jpg,png,jpeg" }];
//如果是安卓微信6.5版本就让filter等于[]
if (/android/.test(ua.toLowerCase();) && wechatInfo && parseFloat(wechatInfo[1]) > 6.3 ) { filter = []; }