微信小程序“摇一摇”实现

原文链接:http://www.webexp.cn/wxapp-paikeng.html

微信小程序并没有提供摇一摇API接口,但是提供了一个重力感应的API 「wx.onAccelerometerChange(CALLBACK)」,我们可以用这个方法来模拟微信摇一摇功能,代码如下:

Page({
    onShow: function () {
        wx.onAccelerometerChange(function (e) {
            console.log(e.x)
            console.log(e.y)
            console.log(e.z)
            if (e.x > 1 && e.y > 1) {
                wx.showToast({
                    title: '摇一摇成功',
                    icon: 'success',
                    duration: 2000
                })
            }
        })
    },
    onHide: function(){

    }
})

但如果小程序需要启用tabbar的话,这样启用重力感应API会使tabbar下面所有页面都会监听到重力感应数据,导致模拟摇一摇在所有页面都能出现摇一摇的结果,这并不是我们想要的,我们只是想在tabbar下其中一个页面允许他获取到重力感应数据,那么就需要我们自己加入一个是否在当前页面的判断,根据判断结果来启用监听重力感应API,代码修改如下:

Page({
    isShow: false,
    onShow: function () {
        var that = this;
        this.isShow = true;
        wx.onAccelerometerChange(function (e) {
            if(!that.isShow){
                return
            }
            console.log(e.x)
            console.log(e.y)
            console.log(e.z)
            if (e.x > 1 && e.y > 1) {
                wx.showToast({
                    title: '摇一摇成功',
                    icon: 'success',
                    duration: 2000
                })
            }
        })
    },
    onHide: function(){
        this.isShow = false;
    }
})

修改以后重新编译预览就达到我们想要的效果了。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值