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