uni-app中uni.chooseLocation在H5微信环境安卓下 第二次使用成功按键会失效(第二次指退出至微信再次进入)
uni-app中uni.chooseLocation在H5微信环境安卓下 第二次使用成功按键会失效(第二次指退出至微信再次进入)
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 10.15.7 | HBuilderX |
示例代码:
uni.chooseLocation({
success: (res)=> {
},
complete:(com)=>{
},
fail:(err)=>{
}
});
操作步骤:
- 直接微信内置浏览器访问
- 选择一个地址点击成功
- 退回至微信 再次点击选择地址 选择地址页面的成功图标就失效了。
预期结果:
预期能正常点击回到自己的页面
实际结果:
实际地址选择的成功按键失效
bug描述:
uni.chooseLocation() 在安卓手机 微信内置浏览器使用 第一次成功 返回微信 再次进入点击完成图表 就不能返回到h5页面

更多关于uni-app中uni.chooseLocation在H5微信环境安卓下 第二次使用成功按键会失效(第二次指退出至微信再次进入)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
没人看一下的吗?
更多关于uni-app中uni.chooseLocation在H5微信环境安卓下 第二次使用成功按键会失效(第二次指退出至微信再次进入)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个是api bug
该问题是由于微信浏览器内核在页面重新激活时,uni.chooseLocation 返回的页面上下文丢失导致的。在安卓微信环境中,当 H5 页面退至后台(如返回微信主界面)后,再次进入时,部分 API 的调用链可能被重置,导致回调无法正常触发。
解决方案:
- 使用
uni.onShow监听页面显示:在页面显示时重新绑定事件或检查定位状态。 - 改用
wx.chooseLocation(需配置微信 JS-SDK):若项目依赖微信环境,可引入微信 JS-SDK,通过wx.chooseLocation调用,稳定性更高。 - 添加页面状态检查:在
onShow生命周期中,若检测到地址选择未完成,可手动触发回调或提示用户重新操作。
示例调整:
onShow() {
// 检查是否有未处理的地址选择结果
if (this.locationPending) {
uni.chooseLocation({
success: (res) => {
this.locationPending = false;
// 处理结果
},
fail: (err) => {
this.locationPending = false;
// 处理失败
}
});
}
}

