小程序在ios和android中,扫码回调与onshow执行顺序的不同
开发时遇见了一个问题。
页面中有一个input框,每次进入这个页面会给他赋一个默认值A。页面有一个扫码功能,扫完码会给这个框赋值一个字符串B。
功能做完以后,发现安卓使用是正常的,但是IOS系统出现了BUG:在扫码后,input框会变为B,然后瞬间又变回A。
后来查找了对此值的赋值发现,ios系统在扫码完返回时调用了onshow()的生命周期函数。而后发现安卓系统也会调用onshow()的生命周期函数。
经过测试,安卓系统中onshow()先被调用,wx.scanCode()的回调函数再被调用。而ios系统wx.scanCode()的回调函数先被调用,onshow()才被调用。
最终的解决方法,把赋值操作放在onload()里面。