微信安卓6.5.3以上版本网页上传不了图片的解决方案

今天下午,收到运营提的bug。安卓用户不能在我们的公众号网页上上传图片,选择图片没有反应。

我第一个反应就是,不可能,之前图片还能上传的,怎么今天就不行了。然后,我用几台安卓机子测试,发现把微信更新到6.5.3以上版本的机子不能上传图片。老版本还能正常上传。

然后我又找了几个有上传图片的网页,有些能用,有些不能。我对比了它们的input后发现,只要accept设置了不是默认值,微信最新版就无法使用这个input标签。

我醉了,这个bug真够坑的。

我们的初衷是,input标签只能识别图片,这导致在安卓上微信6.5.3版本无法使用。虽然还能点开,但是选了图片没有触发事件,也就无法上传图片。

下面是我的解决方案,ios及安卓微信6.5.3之前的input标签只能选择图片,安卓微信6.5.4的input能选择任何文件。

//accept="image/jpg"改为accept="image/*"
<input type="file" id="file" name="file" accept="image/*"  onchange="getPicture(this)"/>

JS代码修改如下

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 = []; }

贴一个大佬关于移动端上传图片的方法
移动端图片上传方法【更好的兼容安卓IOS和微信】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值