1、wx.onAccelerometerChange(CALLBACK) 监听加速度数据,频率:5次/秒,接口调用后会自动开始监听,每调用一次就会注册一个。
2、wx.startAccelerometer(OBJECT) 开始监听方法
坑来了。。。没错就是第三方法
3、wx.stopAccelerometer(OBJECT) 停止监听,这个方法是停止了监听,再晃动手机不会走回调方法了, 但是它并不移除监听
那么问题来了,在某个页面每调用一次第御厅清一个api它就会注册一个监听,第三个api并不能移除掉监听,导致你再次开启的时候就会有多个回调方法在同时进行。就会出现问题。那么怎么避免呢?
解决方法:在微信小程序启动的时候就调用监听方法,在回到方法中通过pages能够获取到当前的页面,在当前页面调用你想回调的镇前方法就好了。
onLaunch: function () {
wx.onAccelerometerChange((e) =>{
var pages = getCurrentPages()var currentPage = pages[pages.length - 1]
if (currentPage.onAccelerometerChange) {
currentPage.onAccelerometerChange(e)
}
})
}
之后就可以在当前页面中伏辩的onAccelerometerChange(e)方法做你想做的事情了
方陆森乎法如下:1、在调用接口时考虑一些逻春此辑先后问题。
2、把后面的代码放在complete方法早悉里,以确保这段代码在wx.getLocation之后执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)