使用以下3个加速度API接口:
wx.onAccelerometerChange wx.startAccelerometer wx.stopAccelerometer
页面中通过onAccelerometerChange来判断摇一摇逻辑,在页面onHide后调用stopAccelerometer停止事件监听,但事件监听并未销毁。
当再次进入小程序时,调用startAccelerometer,发现监听事件会再增加,每次小程序从后台到前台时都会增加监听,相当浪费效率。
在社区搜了解决方法,还没有解决,这个问题是否已经有解决方法了,谢谢。
// 控制器 Page({ isShow: false , onHide: function () { this .isShow = false ; wx.stopAccelerometer(); }, onShow: function () { var thiz = this ; console.log(thiz.isShow); if (thiz.isShow) { wx.startAccelerometer(); } else { this .isShow = true ; wx.onAccelerometerChange( function (e) { var num = 0.5; if (e.x > num && e.y > num || e.y > num && e.z > num || e.x > num && e.z > num) { // 震动 wx.vibrateLong({ success: function (res) { thiz.huoquGuo(); } }) } }) } } }); |
可以贴一下代码吗,遇到这个问题了
可以贴一下解决方法的代码吗?
问题已解决,onAccelerometerChange调用多少次就会开启多少事件监听,在app里onLaunch调用onAccelerometerChange,在方法内调用page的方法,然后在page的onShow、onHide里分别调用startAccelerometer、
stopAccelerometer。
你好,可以提供一下具体代码吗
stopAccelerometer只是暂时停止事件监听,调用startAccelerometer后会全部开启之前停止的事件监听