小程序
小游戏
企业微信
微信支付
扫描小程序码分享
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.offLocationChange.html
在停止的时候我是这样调用的:
但是wx.offLocationChange中没有打印内容,
再次启动的时候定位监听的时候,出现数据重复
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也遇到题主同样的问题。
经过研究,发现是微信文档中对函数的说明写法有问题。
onLocationChange 应该是对“实时地理位置变化事件的回调函数”进行注册,只需要运行一次。
我的解决办法:
在 app.js 的 onLaunch 方法中,调用
wx.onLocationChange(function(res){ console.log(res) })
对位置变更事件进行注册。
然后,在需要使用位置信息的页面中:
onLoad function (options) { // 启动位置跟踪 wx.startLocationUpdate({ success: (res) => { console.log(res) }, fail: (err) => { console.log(err) } }) } onUnload: function () { // 停止位置跟踪 wx.stopLocationUpdate({ success: (res) => { console.log("onUnload stopLocationUpdate success", res) }, fail: (err) => { console.log("onUnload stopLocationUpdate fail", err) } }) }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
const listener = function (res) { console.log(res) } wx.onLocationChange(listener) wx.offLocationChange(listener) // 需传入与监听时同一个的函数对象 wx.offLocationChange() 这个方法的参数,不是传关闭之后的回调函数,而是传递监听时的函数。也就是需要关闭的监听函数对象
机型:iphone 6,微信版本号:7.0.12,系统版本号(?基础版本库):2.10.4
代码片段:https://developers.weixin.qq.com/s/jjg4yNm37lgk
关键代码:
测试结果:
无wx.offLocationChange的输出
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也遇到题主同样的问题。
经过研究,发现是微信文档中对函数的说明写法有问题。
onLocationChange 应该是对“实时地理位置变化事件的回调函数”进行注册,只需要运行一次。
我的解决办法:
在 app.js 的 onLaunch 方法中,调用
wx.onLocationChange(function(res){ console.log(res) })
对位置变更事件进行注册。
然后,在需要使用位置信息的页面中:
onLoad function (options) { // 启动位置跟踪 wx.startLocationUpdate({ success: (res) => { console.log(res) }, fail: (err) => { console.log(err) } }) } onUnload: function () { // 停止位置跟踪 wx.stopLocationUpdate({ success: (res) => { console.log("onUnload stopLocationUpdate success", res) }, fail: (err) => { console.log("onUnload stopLocationUpdate fail", err) } }) }
const listener = function (res) { console.log(res) } wx.onLocationChange(listener) wx.offLocationChange(listener) // 需传入与监听时同一个的函数对象 wx.offLocationChange() 这个方法的参数,不是传关闭之后的回调函数,而是传递监听时的函数。也就是需要关闭的监听函数对象
机型:iphone 6,微信版本号:7.0.12,系统版本号(?基础版本库):2.10.4
代码片段:https://developers.weixin.qq.com/s/jjg4yNm37lgk
关键代码:
测试结果:
无wx.offLocationChange的输出
2、然后使用wx.stopLocationUpdate、wx.offLocationChange停止监听位置变化后,
3、在重新开wx.startLocationUpdateBackground,wx.onLocationChange
4、但是第一次的wx.onLocationChange会继续监听,所以会出现多次调用,就会数据重复,也就是wx.offLocationChange没起作用。
不知道的是官方的bug,还是使用方法不对,反正试了好多次都不行
所以我觉得可以换个办法:
只有第一次调用开启wx.onLocationChange,然后只操作wx.startLocationUpdateBackground,wx.stopLocationUpdate
这样数据不会重复了
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
代码片段:https://developers.weixin.qq.com/s/jjg4yNm37lgk
关键代码及输出结果如下: