收藏
回答

当前页面wx.onKeyboardHeightChange被其他页面卸载

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onKeyboardHeightChange 微信iOS客户端 7.0.18 2.14.0

同时在两个页面使用wx.onKeyboardHeightChange和wx.offKeyboardHeightChange, offKeyboardHeightChange会把所有的页面的onKeyboardHeightChange事件给卸载掉,这样就会导致onKeyboardHeightChange莫名其妙不执行的问题,因为直接用组件上的bindkeyboardheightchange在有些机器上也不能正常触发,只能使用wx.onKeyboardHeightChange, 现在只能在onshow时绑定 ,onHide的时候卸载,两个页面不同的回调函数为什么要把其他的也卸载了,不可以指定卸载某个么,要不然太容易误导人了,出了问题完全懵逼,都不知道是什么原因,还以为是你们的onKeyboardHeightChange又有bug了

回答关注问题邀请回答
收藏

2 个回答

  • 欧阳崽
    欧阳崽
    2021-10-18

    为什么要 取消键盘监听啊,我没有取消耶。。需要用的页面都在监听了一次。

    2021-10-18
    有用
    回复
  • Cjiang
    Cjiang
    2020-11-06

    你好,请参考下页面路由方式所触发的生命周期,具体参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html

    2020-11-06
    有用
    回复 17
    • worm
      worm
      2020-11-08
      麻烦认真看下我说的意思,你发的这个我知道,卸载当前页面的绑定事件没毛病,我帖子里的意思是卸载当前页面的同时把其他正在活动的页面绑定的事件也给卸载了,还在路由历史记录栈里的页面
      2020-11-08
      回复
    • worm
      worm
      2020-11-08
      点击后退就能返回上一个页面,你在当前页面点返回,当前页面unload没毛病,但是你同时把其他页面的也卸载了,我返回上一个页面就不正常了,这个不是有毛病么?
      2020-11-08
      回复
    • worm
      worm
      2020-11-08
      比如,在A、B两个页面都需要使用键盘事件,我在A页面用navigateTo打开B页面,A页面触发onHide,B页面触发onLoad、onShow, 然后在B页面点击返回按钮,B页面unload, A页面onShow,现在的问题是B页面unLoad的时候卸载自己页面键盘事件的同时把A页面的键盘事件也给卸载了,这样我回到A页面之后就出问题了,页面关于键盘事件的逻辑就不能正常执行了
      2020-11-08
      回复
    • Cjiang
      Cjiang
      2020-11-08回复worm
      返回上一页请参考相应可以触发的生命周期,返回的api在onshow里面调用试试。
      2020-11-08
      回复
    • Cjiang
      Cjiang
      2020-11-08回复worm
      代码片段的第一个页面wx.onKeyboardHeightChange放在onshow生命周期试试。
      2020-11-08
      回复
    查看更多(12)
登录 后发表内容
问题标签