很基础的用法
调用就报错
文档内是这么写的
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
根据你的问题描述和文档内容,这里澄清一下:uni.chooseLocation 在 App 端(安卓和 iOS)并不是只能通过云函数调用,但它所依赖的地点搜索和逆地址解析功能,出于安全考虑,必须通过 uniCloud 的云对象来中转。
具体来说,情况是这样的:
地图展示 vs 位置搜索
manifest.json 里配置的腾讯地图 Key,主要作用是把地图显示出来。 uni.chooseLocation 这个 API 里用到的搜索地点和逆地址解析这些高级功能,出于对服务端 Key 的保护,现在强制要求通过 uniCloud 的安全网络来调用,避免在前端代码中暴露 Key。 具体实现方式
uni.chooseLocation 设置 useSecureNetwork: true 参数,来安全地调用后台的这个云对象,从而获取位置搜索结果。 关于你遇到的报错
Encryption block is invalid 错误,这正是在使用安全网络时可能出现的加密块验证失败问题。 总结一下,uni.chooseLocation 本身不需要你手动去写一个云函数来调用,但必须配合 uni-map-co 云对象和 uniCloud 安全网络服务来使用。这是当前 App 平台为了保证服务安全的设计。升级到最新的 HBuilderX 版本应该能解决你遇到的加密相关报错。