uni-app uni.openLocation 导航不能定位起点
uni-app uni.openLocation 导航不能定位起点
示例代码:
uni.openLocation({
name,
latitude,
longitude,
success: function () {
console.log('success');
},
fail: function(err) {
console.log('openLocation',err)
}
});
操作步骤:
- 调用
uni.openLocation
跳转到地址查看页面,点击右下角箭头按钮
预期结果:
- 在点击右下角导航按钮的时候,最多只提示一次,然后默认以当前位置为起点导航
实际结果:
- 在点击右下角导航按钮的时候,会提醒两次次,导航的时候没办法使用当前位置为起点
bug描述:
uni-app 开发H5应用,用户需要查看景区位置并导航,但是在调用uni.openLocation
的时候出现以下问题:
- 在点击导航按钮的时候会出现两次相同的提示框(可能离开微信,打开第三方应用)
- 在浏览器内导航的时候,没办法将当前定位设定为起点,必须选择一个默认的起点位置
如果手机下载了腾讯地图APP就没问题,但是没有下载就会像我说的那样
你微信发个地点导航能成功么 他俩理论上是一样的啊
不一样的 微信里面的位置导航一定是APP导航,而这个是没有APP就使用浏览器内置导航,内置导航起点不是当前位置,而且必须选择一个默认弹出的地址选项
回复 http404: 那你能不能这样 就是 吧当前位置当成默认位置 传进去,能行么
回复 小枫叶: api没有参数可以传当前坐标的/(ㄒoㄒ)/~~
我怎么跟你的不一样 ,你能否发个可复现的demo看看
http://cs.maiqiyun.com/pages/changshou-lake/cshz/cshz-detail?key=bhd 点击导航就可以看到了,把手机的腾讯地图app卸载了
遇到同样的问题了,请问作者找到解决办法了吗?
提醒两次是微信内置浏览器在页面跳转时的提示,用其他浏览器打开就没这个问题了
必须选择我的开头的地址问题,后续会修复,感谢反馈,已加分
HBuilderX 3.6.7 已修复
修复了吗
在使用 uni.openLocation
进行导航时,如果无法定位起点,可能是由于以下原因导致的。你可以根据这些可能的原因进行排查和解决:
1. 未正确设置起点坐标
uni.openLocation
的起点坐标需要手动传入,如果你没有正确设置起点坐标,导航将无法定位起点。
uni.openLocation({
latitude: 39.90469, // 起点的纬度
longitude: 116.40717, // 起点的经度
name: '起点名称', // 起点名称
address: '起点地址', // 起点地址
success: function (res) {
console.log('打开地图成功');
},
fail: function (err) {
console.log('打开地图失败', err);
}
});
解决方案:确保你传入了正确的起点坐标(latitude
和 longitude
)。
2. 起点坐标格式不正确
起点坐标的格式必须是有效的经纬度值。如果传入的坐标格式不正确,可能会导致无法定位起点。
解决方案:检查传入的 latitude
和 longitude
是否为有效的经纬度值。
3. 地图应用不支持起点设置
某些地图应用可能不支持在外部调用时设置起点坐标,导致无法定位起点。
解决方案:尝试使用不同的地图应用进行测试,或者检查你使用的地图应用是否支持设置起点。
4. 设备或系统问题
在某些设备或系统上,可能由于权限问题或系统限制,导致无法正确定位起点。
解决方案:确保应用已获取必要的地理位置权限,并在不同的设备上进行测试。
5. uni-app 版本问题
如果你使用的是较旧版本的 uni-app,可能存在一些已知的 bug 或限制。
解决方案:尝试更新 uni-app 到最新版本,并查看是否有相关的修复。
6. 使用 uni.getLocation
获取当前位置
如果你希望使用当前设备的位置作为起点,可以先使用 uni.getLocation
获取当前位置,然后再调用 uni.openLocation
。
uni.getLocation({
type: 'wgs84',
success: function (res) {
uni.openLocation({
latitude: res.latitude, // 使用获取到的纬度
longitude: res.longitude, // 使用获取到的经度
name: '当前位置', // 起点名称
address: '当前位置', // 起点地址
success: function (res) {
console.log('打开地图成功');
},
fail: function (err) {
console.log('打开地图失败', err);
}
});
},
fail: function (err) {
console.log('获取位置失败', err);
}
});