收藏
回答

IOS wx.hideTabBar 第一次调用失败

框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 wx.hideTabBar 客户端 iOS 6.6.5 1.9.94

tabBar 定义了四个页面,其中希望进入 store 页面后自动隐藏tabBar,而展现自定义的底部菜单。使用wx.hideTabBar(),在安卓上表现正常,但是在IOS 上测试出现问题,用了几台iphone来测试都是第一次进入store页面,底部tabBar没有如期隐藏,导致出现双层导航菜单(见图),后退,再此进入user页面才会隐藏。tabBar其他页面本身的switchTab跳转是正常的。store页面也是正常能跳转的。只是进入页面触发 wx.hideTabBar()的问题。 P.S. 无论是使用onload还是onshow来触发wx.hideTabBar(),情况都一样。


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

5 个回答

  • 黄思程
    黄思程
    2018-03-19

    麻烦给个相关的代码片段(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/minicode.html),我们定位下问题

    2018-03-19
    有用
    回复
  • 🍶
    🍶
    2018-07-12

    IOS下,在onLoad里面使用wx.hideTabbar,然后分享出去,从APP分享卡片点进去退出来点进去,还是会出现tabbar的内容消失,但高度还在的情况


    2018-07-12
    有用 1
    回复
  • J. T
    J. T
    2018-03-20

    已解决,最后在 onReady 触发wx.hideTabBar() 能在IOS 下隐藏tabBar。 但很偶然的情况下还是会有一次半次会出现两层导航菜单(hideTabBar无效,IOS下),作为保障,我做了个二次检测:


    onReady 调用

    wx.hideTabBar({

        fail:function(){

            setTimeout(function(){  // 做了个延时重试一次,作为保底。

                wx.hideTabBar()

            },500)       

        }

    });


    然后

    onShow 加入调用代码

        wx.hideTabBar()


    我的理解:

    对于IOS系统而言,第一次进入,必须在最后 页面ready的情况下调用hideTabBar()才有效,这样才能隐藏。而在onShow那里也调用,原因是,当小程序在运行生命周期内,假如用户退出了当前这个需要隐藏tabbar的页面C,去了其他tab页面(A/B/D),再回来这个页面C的话,还需要触发hideTabBar的。这时候只有onShow合适。


    此坑,与大伙分享,希望能帮到其他人。


    另外,IOS以及华为机上,隐藏tabBar都会一闪跳动一下。效果不太理想。反而是被大家嫌弃的vivo x7上没有这个闪动的情况。 wx.hideTabBar() 估计还需要进一步优化性能或逻辑。


    感谢黄思程官方小伙伴的回复!

    2018-03-20
    有用 1
    回复
  • Bigger
    Bigger
    2018-08-17

    ISO下,虽然wx.hideTabbar函数可以调用成功,但是不能保持

    2018-08-17
    有用
    回复
  • 视频号小店技术助手 - cunjin
    视频号小店技术助手 - cunjin
    2018-03-22

    你好,问题已复现,我们会在后续版本中进行修复。

    2018-03-22
    有用
    回复
登录 后发表内容