Files
xinlong-shop-taro/.workbuddy/memory/2026-07-12.md
赵忠林 b02f0d91b1 fix(user): 修复地图选点打开失败及定位权限处理问题
- 移除旧的定位权限拒绝检测方法,改用微信隐私授权新接口保证兼容
- 新增确保微信隐私授权的函数,适配新版基础库及旧版本放行逻辑
- 增加定位权限预检和引导用户开启权限流程,支持设置页跳转回读授权状态
- 在调用 chooseLocation 时仅传入有效经纬度,避免部分机型失败
- 地图打开失败时增加弹窗提示,支持用户手动选择地区或重试打开地图
- 定位失败且已锁定地区时取消误触发地区选择器,提升用户体验
2026-07-12 21:58:52 +08:00

16 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-07-12
## address-edit 地图选点「打开地图失败」修复
客户反馈部分手机无法通过选择地图填写地址/所在区,提示「打开地图失败,请重试」。
根因按概率①微信隐私授权未处理新版基础库强制最契合「部分手机」②chooseLocation 传 undefined 经纬度;③权限流程不完整;④失败无兜底。
已修复 `src/pages/user/address-edit.tsx`(四层):
1. 调 chooseLocation 前 `ensurePrivacyAuthorized()`wx.getPrivacySetting/requirePrivacyAuthorize旧基础库无接口则放行
2. 仅当 lat/lng 为有效数字时才传给 chooseLocation否则 `chooseLocation({})`
3. `ensureLocationPermission()`getSetting 预检 + authorize 申请 + openSetting 引导并回读确认。
4. 失败兜底:弹窗「手动选择」(打开所在地区选择器)/「再试一次」(chooseLocation({}))regionLocked 时不再误开选择器。
注意:项目本地 `tsc --noEmit` / `npm run type-check` 在本机因 Taro 类型入口缺失(`@tarojs/taro` 不在 @types)会报错,与本次改动无关;以 `taro build --type weapp` 为准。
另:如仍偶发,需确认微信公众平台后台已配置《隐私保护指引》并发布。