a***@qq.com
a***@qq.com
  • 发布:2026-02-05 12:05
  • 更新:2026-02-06 16:44
  • 阅读:110

【报Bug】ios端uni. chooseLocation报错 this.$refs.nearListLoadmore.resetLoadmore

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macos 26.1

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iphone15

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

如下 chooseLocation 不传值

function chooseLocation(data: { latitude?: number; longitude?: number } = {}) {  
  return new Promise((resolve, reject) => {  
    try {  
      uni.chooseLocation({  
        ...data,  
        success: resolve,  
        fail: reject,  
      });  
    } catch (err) {  
      console.error('调用 chooseLocation 时捕获到异常:', err);  
      reject(err);  
    }  
  });  
}

预期结果:

希望ios能用

实际结果:

ios无法展示列表

bug描述:

hbuildx版本4.87

uni. chooseLocation
安卓正常使用 ios无法选择地址,地址列表为空且无法点击完成 报错如下
[JS Framework] Failed to execute the callback function:
TypeError: null is not an object (evaluating 'this.$refs.nearListLoadmore.resetLoadmore')
[Vue warn]: Unhandled error during execution of native event handler

以下帖子也存在相同问题 似乎并没解决
https://ask.dcloud.net.cn/question/149609
https://ask.dcloud.net.cn/question/204317?item_id=313558&rf=false

2026-02-05 12:05 负责人:无 分享
已邀请:
a***@qq.com

a***@qq.com (作者) - 拿着药箱的猎人

出现上面问题不用看了 是高德key的问题。
建议官方给一个key值的检验方式,先判断一下当前的key能不能用,不然这种提示去排查问题很抓马,真的是@#!!@#¥

Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

【官方评审结论】

  1. 反馈完整性

    • 标题、描述、代码、复现步骤、预期/实际结果、环境信息(HBuilderX 4.87、iOS 26、Vue3)均已给出,信息基本完整。
    • 但缺少最关键的两项:
      – manifest.json 中关于「定位」及「地图模块」的勾选截图或代码片段;
      – 高德/腾讯/百度等地图后台为 iOS BundleID 配置的 Key 是否正确。
      建议补充这两项后再提交,否则官方无法 100 % 复现。
  2. 代码示例
    给出的 Promise 封装可直接运行,但 chooseLocation 在不传 latitude/longitude 时,iOS 端会默认以用户当前定位为中心;如果未授予定位权限或 Key 配置错误,就会出现“列表为空”的现象。因此示例虽可运行,但并不能排除权限/配置问题。

  3. 复现步骤
    目前仅描述「不传值调用 chooseLocation」,未说明

    • 是否首次安装就弹出了定位授权弹窗?
    • 用户是否点击了允许?
    • 是否使用了自定义基座/云打包?
      这些细节会影响复现成功率。
  4. 预期结果合理性
    合理。chooseLocation 在 iOS 端只要权限和 Key 正确,应能正常展示附近 POI 列表。

  5. 实际结果是否正常
    列表空白 + JS 报错 resetLoadmore of null 属于异常,可认定为 Bug;但根因大概率是地图 Key 或权限未就绪,导致内部 nvue 页面渲染失败。

  6. 知识库依据

    • chooseLocation 兼容性 明确说明:
      – App-iOS 端仅支持高德/Google 地图;
      – 需在 manifest.json → App 模块配置中勾选“定位”“高德地图”或“Google Maps”;
      – 并在对应地图后台配置 iOS BundleID 与 Key。
    • 历史版本日志(release-archive 2.4.2 / 3.4.6)曾修复过「nvueCompiler 非 weex 时 chooseLocation 无法回调」的问题,说明该 API 在 iOS nvue 场景下曾出现过类似空指针异常。
  7. 是否误报
    目前倾向 不是误报,但需用户自查配置。若配置无误仍复现,则确认为框架缺陷。

【官方建议】

  1. 自查清单
    a. manifest.json → App 模块配置

    • 勾选「定位」
    • 勾选「高德地图」或「Google Maps」
      b. 高德/Google 控制台
    • iOS Key 的 BundleID 与打包证书一致
    • Key 已开启「地点搜索」「逆地址解析」权限
      c. 真机运行时
    • 设置 → 隐私 → 定位服务 → 你的 App → 允许「使用 App 期间」
      d. 如使用自定义基座,请重新制作并确保包含最新模块。
  2. 最小复现 Demo
    新建空项目,仅放一页按钮调用 chooseLocation,按上述清单配置后运行。若仍空白,请把控制台完整日志(含 deviceId、Xcode log)贴到 Ask 社区,官方可进一步跟踪。

  3. 临时替代方案
    若急需上线,可先用 map 组件 + input 搜索自行封装选点页面,插件市场已有多个成熟方案(搜索关键词“地图选点”)。

  4. 后续跟进
    请把自查结果和最小复现 Demo 链接补充到原帖,官方将在 1 个工作日内确认是否为框架缺陷并给出排期。

内容为 AI 生成,仅供参考

要回复问题请先登录注册