微信小程序taBbar添加事件
发布于 5 年前 作者 lwen 4209 次浏览 来自 问答

具体场景:有一个taBbar名叫“拨打电话”,当我点击这个“拨打电话”的taBbar时,调用小程序的API(makePhoneCall)。

看文档中,taBbar中一定是跳转到对应的页面上,我能不能把taBbar只当成button来使用,触发一个事件,就OK了呢?

希望大家能帮我解下惑,谢谢!

10 回复

好像这个可行,我试下

Page({
 
    data: {
        tel: 0
    },
 
    onLoad: function (options) {
 
    },
 
    onShow: function () {
        if (!this.data.tel > 0) {
            wx.makePhoneCall({
                phoneNumber: '123456789',
                success: () => {
                    setTimeout(() => {
                        this.setData({
                            tel: 0
                        })
                    }, 500);
                }
            })
            this.setData({
                tel: 1
            })
        }
    },
 
    onHide: function () {
        wx.switchTab({
            url: '../index/index'
        })
    }
 
})

我也遇到奇葩老板了,这是我写的拨打电话的tabbar页面的js代码,送给那些有缘人。

这方法可行?

onTabItemTap(item) {
    console.log(item.index)
    console.log(item.pagePath)
    console.log(item.text)
  }

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onTabItemTap-Object-object

我想到一个折中的方法,在“拨打电话”taBbar页面: 1. onLoad阶段,调用API(makePhoneCall)2. onShow阶段,调用API(reLaunch),关闭所有页面,重定向到主页面。  这样每次点击“拨打电话”的taBbar,就像是一个button触发事件一样。 唯一一个不好的地方是: 每次都是回到主页面,而不是上级页面。

你的返回事件里面做判断呀

老哥,请问你的问题解决了吗

打电话的API里有个fail的回调吧,你里面做判断跳首页

他点击取消 就是走了fail了 你直接给他跳首页

这个方法我试过,它会无限循环请求  API(makePhoneCall), 因为请求这个API后,会跳转到手机拨打电话的界面,这时按返回,它会跳转回  现在的 taBbar页面,再执行onShow里的代码,又继续请求API

回到顶部