uni.onAccelerometerChange(function (res) {}) 开启监听
uni.offAccelerometerChange(function (res) {}) 关闭监听(无法正常使用)
- 发布:2021-12-20 11:21
- 更新:2022-07-29 16:20
- 阅读:916
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win 10
HBuilderX类型: 正式
HBuilderX版本号: 3.2.12
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: 小米9pro
页面类型: vue
vue版本: vue2
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
在show方法添加 uni.onAccelerometerChange(function (res) {}) 开启监听,推出这个页面在进就累计叠加。
uni.offAccelerometerChange(function (res) {}) 关闭监听(无法正常使用)
在show方法添加 uni.onAccelerometerChange(function (res) {}) 开启监听,推出这个页面在进就累计叠加。
uni.offAccelerometerChange(function (res) {}) 关闭监听(无法正常使用)
预期结果:
退出此页面,需要取消这个api加速度计的监听,
退出此页面,需要取消这个api加速度计的监听,
实际结果:
会累积叠加此api,取消监听无法使用,报错不是一个function
会累积叠加此api,取消监听无法使用,报错不是一个function
我也遇到了这个问题,看了这个帖子现在解决了
核心问题是 offAccelerometerChange 和 onAccelerometerChange 的callback要传同一个方法
你的示例代码里面,两个都是匿名函数
你换成同一个方法再试试,我是这么解决的
问题已经解决,借用前人方法。
监听和取消监听使用同样的方法,比如methods中定义的处理方法叫excute(res){......}
监听和取消监听就应该这么写:
// 监听
uni.onCompassChange(this.excute)
// 取消监听
uni.offCompassChange(this.excute)
1***@qq.com (作者)
我安装了3.2.16sdk和hbx,但是发现offaccelerometerChange这个api还是无法使用销毁api,可以看看使用这个api的代码片段?
2021-12-20 18:57
DCloud_UNI_LXH
回复 1***@qq.com: 无法使用是什么意思?你传同一个方法即可销毁。你在 method 上定义的方法,监听的时候传入,销毁的时候也传入就行了
2021-12-21 10:37
1***@qq.com (作者)
回复 DCloud_UNI_LXH: 最新sdk3.2.16和hbx3.2.16本地打包到手机似乎得到了解决
2021-12-21 18:07