uni-app harmony os next真机上使用uni.chooseLocation调用腾讯地图sdk定位 有概率性出现加载不出的情况
uni-app harmony os next真机上使用uni.chooseLocation调用腾讯地图sdk定位 有概率性出现加载不出的情况
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Windows 10 专业版;21H2 | CLI |
操作系统内部版本号:19044.3086 | ||
HarmonyOS NEXT | HarmonyOS NEXT Developer Beta2 | |
手机厂商 | 华为 | |
手机机型 | HUAWEI Mate 60(软件版本:5.0.0.102) | |
页面类型 | vue | |
vue版本 | vue3 | |
打包方式 | 云端 | |
CLI版本号 | 4.29 |
操作步骤:
harmony os next真机上使用腾讯地图sdk定位功能,通过uni.chooseLocation选择地理位置,在已授权用户地理位置权限后,有大概率可能出现地图加载不来的问题,最槽糕的情况下需要多次手动点击右下角定位按钮,而且要间隔很久才能加载出来
预期结果:
期望腾讯地图sdk定位可以正常加载出来
实际结果:
有概率会加载不出来,需手动多次点击定位到当前位置才有可能加载得出来
bug描述:
harmony os next真机上使用腾讯地图sdk定位功能,通过uni.chooseLocation选择地理位置,在已授权用户地理位置权限后,有大概率可能出现地图加载不来的问题,最槽糕的情况下需要多次手动点击右下角定位按钮,而且要间隔很久才能加载出来
跟网络稳定性是否有关?
跟网络没关系,后面单独私信@DCloud_UNI_yuhe了,“这个 chooseLocation,好像是还需要调整,等我们调整之后会通知你。”,这是他的回复,而且现在uniapp 涉及到鸿蒙next端很多处文档好像也没有及时更新,这可能会导致开发者遇到文档没法及时排除到底是什么原因
回复 海贼王路飞: 他回你的调整就是4.31发布的内容,这条release应该是漏写了
针对您提到的在uni-app harmony os next真机上使用uni.chooseLocation
调用腾讯地图SDK定位时出现的概率性加载不出问题,这通常可能与多种因素有关,包括网络状态、地图SDK的初始化状态、系统资源限制等。以下是一个简化的代码示例,展示了如何在uni-app中集成并使用腾讯地图SDK进行定位,同时包含了一些基本的错误处理和重试机制,以帮助减少加载失败的概率。
首先,确保您已经在项目中正确集成了腾讯地图SDK,并在manifest.json
中配置了必要的权限和依赖。
// manifest.json 示例配置
{
"mp-harmonyos": {
"app-plus": {
"distribute": {
"sdkConfigs": {
"tencentmap": {
"version": "latest", // 使用最新版本
"appid": "YOUR_TENCENT_MAP_APPID" // 替换为您的腾讯地图APPID
}
}
}
}
}
}
接下来,在您的页面或组件中调用uni.chooseLocation
,并增加错误处理和重试逻辑:
export default {
data() {
return {
retryCount: 0,
maxRetries: 3
};
},
methods: {
getLocation() {
const self = this;
uni.chooseLocation({
type: 'gcj02', // 坐标系
success: (res) => {
console.log('定位成功', res);
},
fail: (err) => {
console.error('定位失败', err);
if (self.retryCount < self.maxRetries) {
self.retryCount++;
setTimeout(() => {
self.getLocation(); // 重试
}, 2000); // 等待2秒后重试
} else {
uni.showToast({
title: '定位服务异常,请稍后重试',
icon: 'none'
});
}
}
});
}
},
onLoad() {
this.getLocation(); // 页面加载时调用定位
}
};
在上述代码中,我们定义了一个重试机制,当定位失败时,会等待2秒后尝试重新调用uni.chooseLocation
,最多重试3次。这种方式可以在一定程度上减少因网络波动或地图SDK初始化未完成导致的加载失败问题。
请注意,实际项目中可能需要更复杂的错误处理和用户反馈机制,以及根据具体业务逻辑调整重试策略和间隔时间。此外,确保您的腾讯地图SDK版本与uni-app及HarmonyOS系统兼容,也是减少问题出现的重要一环。如果问题依旧存在,建议检查网络日志、系统日志或联系腾讯地图SDK的技术支持获取更专业的帮助。