- 发布:2024-09-12 15:53
- 更新:2024-09-12 22:37
- 阅读:114
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win 11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.12
手机系统: 全部
手机厂商: 华为
页面类型: nvue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
this.watchLocationId = plus.geolocation.watchPosition(function(address) {
console.log('watch', address);
}, function(e) {
console.log(e);
}, {
provider: 'amap',
//是否使用高精度设备,如GPS。默认是true
enableHighAccuracy: true,
//超时时间,单位毫秒,默认为0
timeout: 10000,
//使用设置时间内的缓存数据,单位毫秒
//默认为0,即始终请求新数据
//如设为Infinity,则始终使用缓存数据
maximumAge: 0,
geocode: false, // 禁止解析位置
})
this.watchLocationId = plus.geolocation.watchPosition(function(address) {
console.log('watch', address);
}, function(e) {
console.log(e);
}, {
provider: 'amap',
//是否使用高精度设备,如GPS。默认是true
enableHighAccuracy: true,
//超时时间,单位毫秒,默认为0
timeout: 10000,
//使用设置时间内的缓存数据,单位毫秒
//默认为0,即始终请求新数据
//如设为Infinity,则始终使用缓存数据
maximumAge: 0,
geocode: false, // 禁止解析位置
})
操作步骤:
使用上述代码进行调用,调用后异常消耗了逆地理解析次数
使用上述代码进行调用,调用后异常消耗了逆地理解析次数
预期结果:
不消耗逆地理解析次数
不消耗逆地理解析次数
实际结果:
消耗定位次数时,也消耗了逆地理解析次数
消耗定位次数时,也消耗了逆地理解析次数
bug描述:
https://www.html5plus.org/doc/zh_cn/geolocation.html#plus.geolocation.PositionOptions
geocode: (Boolean 类型 )是否解析地址信息
解析的地址信息保存到Position对象的address、addresses属性中,true表示解析地址信息,false表示不解析地址信息,返回的Position对象的address、addresses属性值为undefined,默认值为true。 如果解析地址信息失败则返回的Position对象的address、addresses属性值为null。
plus.geolocation.watchPosition 按照文档中设置 geocode为false后,仍然会继续调用逆地理解析,导致线上环境的高德API key调用超限,应用停止服务
我在GitHub上查看源码:
https://github.com/dcloudio/H5P.Android/blob/765e916e87db5670868257ad1a4d27d996704178/feature/geolocation-amap/src/io/dcloud/js/geolocation/amap/AMapGeoManager.java
发现isGeoCode变量并未影响到mOption.setNeedAddress(boolean)的设置,只在返回结果时判断是否添加地理位置信息。
请紧急处理此BUG!!!
请紧急处理此BUG!!!
请紧急处理此BUG!!!
8***@qq.com (作者)
getCurrentPosition也有这个问题。
使用uni.getLocation是同样调用plus的代码还是另外有一套实现?
2024-09-13 08:48