2***@qq.com
2***@qq.com
  • 发布:2023-03-15 16:53
  • 更新:2023-03-15 16:53
  • 阅读:180

位置监听无法清除

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 22000.1574

HBuilderX类型: 正式

HBuilderX版本号: 3.7.3

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: 小米 10s

页面类型: nvue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

<template>
<view>
<button @click="goPage">跳转页面</button>
</view>
</template>

<script>
export default {
data() {
return {
watchlocationId: null,
}
},
onShow() {
if (this.watchlocationId == null) {
this.watchLocation()
}
},
onUnload() {
if (this.watchlocationId) {
plus.geolocation.clearWatch(this.watchlocationId);
this.watchlocationId = null
}
},
methods: {
// 高精度监听位置
watchLocation() {
let _this = this
let time = new Date().valueOf()
this.watchlocationId = plus.geolocation.watchPosition(function(position) {
console.log(position);
})
},
goPage(){
uni.reLaunch({
url:"/pages/index/index"
})
}
}
}
</script>

<style></style>

操作步骤:

1.跳转至新的页面
2.从新的页面跳转至当前页
3.多次重复当前步骤

预期结果:

页面跳转后停止位置监听
从跳转也返回至当前页继续监听

实际结果:

从跳转也返回至当前页后,监听函数每次更新数据会被多次调用,重复页面跳转后,监听函数会被多次重复回调

bug描述:

页面中:
在页面启动时使用 plus.geolocation.watchPosition 监听位置数据
在页面销毁时使用 plus.geolocation.clearWatch 关闭位置监听

然后跳转页面,跳转后位置监听确实会关闭,但从新跳转回原来页面时 位置监听的数据会多次重复,关闭监听无效

2023-03-15 16:53 负责人:无 分享
已邀请:

要回复问题请先登录注册