微信公众号开发中的坑

最近在开发一个银行公众号,主要业务是做贷款。我主要负责授信.借款审批以及首页的展示。听起来很简单,但由于银行的特殊性,对安全要求高,所以实施起来还是有点儿挑战性。
本文主要讲讲在开发过程遇到的坑。
1.iOS的微信内置浏览器不识别并集选择器。严格的说是用jQuery去操作DOM,类似$(“input[type=text]”)这种选择器,安卓可以正常执行,iOS报错。
2.H5的history。由于业务需求,有时候页面会跳到第三方页面,去做一些认证,类似支付宝为了提高芝麻分去做学历认证这种。就会有这种场景出现,从本地的A页面跳到本地B页面,从B页面跳到第三方页面去认证,认证完了再跳回B页面。由于浏览器默认的历史记录,此时从B页面返回,就会回到第三方页面,我们想让他无论什么时候总是能跳回A页面,怎么办?利用history对象,屏蔽默认的行为,监听回退事件,让它回退时直接回到A页面就行了。没问题,这种方案在网上很多。但是实际中带来一个新的bug。iOS一进入B页面马上就执行了回退的事件处理函数,而不是等到用户点击返回才触发,这样始终不能到达B页面。又怎么办?后来去百度一下,发现早有人踩过坑,把事件监听放在一个延时器中。完美解决。
3.部分小米以及华为手机调用微信的摄像头上传照片会乱跳页面,微信官方未给出解决方案。如果调摄像头的地方不多,我想到一种方案可以解决,具体不在本文说明。
4.页面初始化的时候去调后台接口,获取数据渲染页面,如果调接口时间较长要注意,可能会出现页面上重复显示的问题,刷新页面就可以解决。具体做法:离开页面删除状态,进入页面设置状态,根据状态来决定是否自动刷新页面。
5.安卓手机在调接口的时候,如果超过10秒服务器无响应,浏览器会自动重发,如果是充值交易,将会非常危险。具体解决办法,让后台做限制。
本文列举几个常见的坑,后续会陆续补充新的bug以及hack,欢迎交流。

你可能感兴趣的:(微信公众号开发中的坑)