微信上传图片是经常使用的功能,首先说一下使用的是:localResizeIMG进行图片压缩上传。感觉还是很好用,基本上功能都能满足。
但是最近在开发这个功能时遇到一个奇怪的问题,就是iphone|ipad|ipod|测试都没有问题,都能上传成功。可是有些安卓机却总是上传不上去,也没有任何错误提示。最后楼主通过web开发工具的移动调试功能,发现在android下会报: weixin://preInjectJSBridge/fail。
通过上网搜了一番,大概知道问题原因了:是因为js代码中使用了部分ES6(以前没有接触过,网上评价还是挺高。JavaScript的重大变革)语法,在微信浏览器中没有ES6运行环境。出现此问题的原因因为好多浏览器目前还没有兼容es6,希望将来可以快速兼容下去。
解决方法:1.使用babel(以前也没接触过),进行es6--》es5转换,使其兼容。
2.加入IOS和Android的兼容代码,检测到符合环境时会自动引入。楼主使用的是这种方式。其实是两个js文件。
也是花费了将近一天时间,在此记录一下,也希望对后来人有些帮助。
最后附上一张上传的图片: