
微信小程序在华为鸿蒙4.0系统上定位异常的解决方法
在微信小程序开发中,定位功能至关重要。然而,部分开发者反映,其小程序在华为鸿蒙4.0系统上出现定位失败或不稳定问题。本文将分析此问题,并提供相应的解决方案。
问题描述:
有开发者使用uni-app框架构建的小程序,在华为鸿蒙4.0系统上调用uni.getlocation()接口时,经常出现定位失败。iOS系统则运行正常。控制台输出有时仅显示“start”,有时无任何输出。代码示例如下:
name wechat-article-writer-pro description 微信公众号文章完整生成技能(专业版)。输入主题即自动完成:信息调研、文章撰写(含章节配图)、5个备选爆款标题、封面图生成、带格式排版的DOCX文档输出。触发词:写公众号文章、生成公众号内容、做微信推文、公众号文章完整版。 agent_created true 微信公众号文章完整生成技能(专业版) 概述 本技能提供微信公众号文章从主题到成品的完整生成流程,在基础版之上增加:章节配图、DOCX 格式输出(含彩色重点文字和表格
onShow(){
this.glApp.doLocation((res) => {
this.getList();
})
}
export const doLocation = (completed) => {
console.log("start")
uni.getLocation({
isHighAccuracy: true,
type: 'gcj02',
success(res) {
console.log("succcc")
uni.setStorageSync('locMess', res)
completed(res)
},
fail(res) {
console.log("errrr")
uni.removeStorageSync('locMess')
uni.hideLoading()
uni.getSetting({
success(res) {
console.log(res.authSetting)
if (res.authSetting['scope.userLocation'] == false) {
uni.showModal({
title: '温馨提示',
content: '定位失败,请开启定位',
cancelText: '取消',
confirmText: '去开启',
success: function(res) {
if (res.confirm) {
uni.openSetting({
scope: 'scope.userLocation'
})
} else if (res.cancel) {
completed()
}
}
});
} else {
uni.showToast({
icon: "none",
title: '定位失败,请检查设置',
duration: 2000,
success() {
completed()
},
fail() {
completed()
}
})
}
}
})
}
})
}
问题分析与解决方案:
由于问题仅在华为鸿蒙4.0系统上出现,且uni-app框架在其他系统上表现正常,因此,兼容性问题值得关注。
建议:尝试使用微信小程序原生API wx.getLocation()代替uni.getLocation(),以排除uni-app框架的潜在兼容性问题。如果问题依旧,则需进一步排查其他因素,例如:设备的定位权限设置、网络连接状态以及小程序代码逻辑等。


















