最近在作一个微信上的移动应用,踩了很多坑,作了如下的总结:css
-
微信分享功能,安卓和iPhone存在着不少而差别。一开始调用微信分享功能须要引入jssdk,在入口文件index.js中引入了http://res.wx.qq.com/open/js/jweixin-1.0.0.js js文件,而后出现了的问题是安卓能够进分享,可是iPhone却老是出现invalid signature,后来发现是由于iOS 9.0须要引入https://res.wx.qq.com/open/js/jweixin-1.0.0.js,不然会分享失败。html
-
iOS overflow:auto滚动不流畅问题。这个问题通常加上一句-webkit-overflow-scrolling : touch;就能够就解决问题,可是当有已导航栏用了fixed或者absolute定位的,定位就会失效,这是须要给overflow:auto的标签加上一个绝对定位,如position:fixed或者position:absolute。node
-
有关于css选择器的坑:若是在html和body选择器中写了overflow:auto,对子元素div的滚动条的scrolltop值就总会为0,这和浏览器的兼容不一样,这个神奇的坑花了我很长的时间才解决。web
-
作微信支付接口jsapi调用的时候,支付目录的配置颇有讲究,Vue项目若是没有改变路由的mode的默认值hash,这时#的存在就会是支付目录的配置失败,这是须要更改mode的模式,变为history。ajax
-
引入了百度地图API后,在微信开发者工具上面的定位和手机上定位差距很大,居然有十多千米,这个让我一直觉得是百度定位不许确,还试过换微新jssdk的定位,到头却发现是由于浏览器定位不许确致使的,只要代码在手机上跑起来,定位就会很精确。express
-
上传文件的坑,或者说是上传图片,用formdata经过ajax发送给后台,可是图片太大的话node会报一个错误request entity too large,这是node上传文件限制的缘由,这个须要在node加上一个上传文件的限制json
//app.use(express.limit(100000000) //app.use(bodyParser({limit : "5000kb"})); //app.use(json({limit: '5000kb'}));
可是通常体验文件太大的话用户体验很差,又消耗流量,最好仍是使用canvas压缩上传。canvas