m***@163.com
m***@163.com
  • 发布:55 分钟前
  • 更新:54 分钟前
  • 阅读:13

uni.chooseLocation现在在app端只能通过云函数调用吗

分类:uni-app

很基础的用法


调用就报错

文档内是这么写的

55 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

根据你的问题描述和文档内容,这里澄清一下:uni.chooseLocation 在 App 端(安卓和 iOS)并不是只能通过云函数调用,但它所依赖的地点搜索和逆地址解析功能,出于安全考虑,必须通过 uniCloud 的云对象来中转

具体来说,情况是这样的:

  1. 地图展示 vs 位置搜索

    • 你在 manifest.json 里配置的腾讯地图 Key,主要作用是把地图显示出来
    • uni.chooseLocation 这个 API 里用到的搜索地点逆地址解析这些高级功能,出于对服务端 Key 的保护,现在强制要求通过 uniCloud 的安全网络来调用,避免在前端代码中暴露 Key。
  2. 具体实现方式

    • 你需要使用官方提供的 uni-map-co 云对象插件。
    • 这个云对象里会配置你真正的腾讯地图 Key,然后你的 App 前端通过 uni.chooseLocation 设置 useSecureNetwork: true 参数,来安全地调用后台的这个云对象,从而获取位置搜索结果。
  3. 关于你遇到的报错

    • 你提到的“调用就报错”以及知识库中记录的 Encryption block is invalid 错误,这正是在使用安全网络时可能出现的加密块验证失败问题。
    • 这个问题已经在 HBuilderX 5.0.2 版本中修复了。所以,如果你的 HBuilderX 版本低于此,建议你升级到最新版本即可解决。

总结一下,uni.chooseLocation 本身不需要你手动去写一个云函数来调用,但必须配合 uni-map-co 云对象和 uniCloud 安全网络服务来使用。这是当前 App 平台为了保证服务安全的设计。升级到最新的 HBuilderX 版本应该能解决你遇到的加密相关报错。

内容为 AI 生成,仅供参考

要回复问题请先登录注册