评论

小程序在ios和android中,扫码回调与onshow执行顺序的不同

小程序开发中ios与android的坑

开发时遇见了一个问题。

页面中有一个input框,每次进入这个页面会给他赋一个默认值A。页面有一个扫码功能,扫完码会给这个框赋值一个字符串B。

功能做完以后,发现安卓使用是正常的,但是IOS系统出现了BUG:在扫码后,input框会变为B,然后瞬间又变回A。

后来查找了对此值的赋值发现,ios系统在扫码完返回时调用了onshow()的生命周期函数。而后发现安卓系统也会调用onshow()的生命周期函数。

经过测试,安卓系统中onshow()先被调用,wx.scanCode()的回调函数再被调用。而ios系统wx.scanCode()的回调函数先被调用,onshow()才被调用。

最终的解决方法,把赋值操作放在onload()里面。

最后一次编辑于  2021-03-03  
点赞 2
收藏
评论

4 个评论

  • 阿呆
    阿呆
    05-09

    2024, 复现

    05-09
    赞同
    回复 2
    • eylehkeg
      eylehkeg
      10-18
      顶一个
      10-18
      回复
    • eylehkeg
      eylehkeg
      10-18
      也是复现了
      10-18
      回复
  • y
    y
    04-18

    官方管一下啊,都这么久了,还没有解决

    04-18
    赞同
    回复
  • 潇公子
    潇公子
    04-08

    都2024年了还不没有统一

    04-08
    赞同
    回复
  • 犀利小肥龙
    犀利小肥龙
    2023-08-31

    这真是个坑,2023年了Android和IOS系统下wx.scanCode的回调和onShow的执行顺序还是不一致,就不能统一一下😩😩😩

    2023-08-31
    赞同
    回复
登录 后发表内容