位置服务使用指南

一、使用前须知

多端应用中地图与位置服务相关 JSAPI 能力,如 Map 组件wx.openLocation 等 location 相关接口能力,是基于腾讯位置服务open in new window服务实现,开发者需前往腾讯位置服务控制台注册开发者账号,并创建对应以获取 LBS SDK 所需的 Key。为方便开发者更好地理解整体逻辑,需认真阅读本章节的内容:

1、关于 SDK 版本要求

  • iOS SDK:需使用版本号 ≥ 1.0.14
  • Android SDK :需使用版本号 ≥ 1.0.7

补充:Android core sdk 选择 1.2.0 及以上,Android 对应的 lbs sdk 也要选 1.2.0 及以上,否则构建会失败的。

2、关于合规指南

根据监管部门要求,使用 SDK 时必须在《隐私政策》中告知终端用户 SDK 使用用途,并且在终端用户未同意《隐私政策》前不得初始化任何 SDK。请确保你开发或运营的应用有符合监管要求的《隐私政策》文本。同时请你务必明确告知终端用户您的应用使用了腾讯位置服务。

3、JSAPI 列表

LBS SDK,包括地图、定位、罗盘、加速计和设备方向等能力;其中地图和定位能力需配置腾讯位置服务 Key,具体相关的 JSAPI 列表如下:

名称功能说明是否支持
wx.stopLocationUpdateopen in new window关闭监听实时位置变化,前后台都停止消息接收支持
wx.startLocationUpdateBackgroundopen in new window开启小程序进入前后台时均接收位置消息,需引导用户开启授权open in new window支持
wx.startLocationUpdateopen in new window开启小程序进入前台时接收位置消息支持
wx.openLocationopen in new window使用微信内置地图查看位置支持
wx.onLocationChangeErroropen in new window监听持续定位接口返回失败时触发支持
wx.onLocationChangeopen in new window监听实时地理位置变化事件,需结合 wx.startLocationUpdateBackground、wx.startLocationUpdate 使用支持
wx.offLocationChangeErroropen in new window移除持续定位接口返回失败时触发支持
wx.offLocationChangeopen in new window移除实时地理位置变化事件的监听函数支持
wx.getLocationopen in new window获取当前的地理位置、速度是;此接口不涉及计费
wx.chooseLocationopen in new window打开地图选择位置支持

注意事项

  • 使用该能力,构建 IPA 时不可选择「临时签名」,必须选择「证书签名」

二、操作指南

本章节的操作指南仅包含开发者工具上的操作,更多关于腾讯位置服务open in new window控制台操作可前往其官网进行查看相关指引

1、申请 LBS SDK Key

腾讯位置服务控制台注册开发者账号,并创建对应以获取 LBS SDK 所需的 Key

  • 创建应用,填写应用名称以及应用类型
  • 添加 Key
  • 需同时勾选「WebServiceAPI」和「SDK」,但是「域名白名单」里面的内容不要填写
  • 点击「添加」即可创建成功,并可查看配额信息
  • 前往「我的应用」即可查看 LBS SDK 所需的 Key
  • 补充说明:认证为企业开发者可获得更高配额,详情可前往「腾讯位置服务控制台 - 配额管理」进行查看

2、启用 LBS SDK 并配置 Key

  • 前往微信开发者工具,打开 project.miniapp.json 并进入扩展 SDK 配置,并启用 LBS SDK 以及 填写 qmapAPIKey
  • qmapAPIKey 即为步骤 1 中获取的腾讯位置服务 Key
  • 其他说明:iOS 版 则无需选择 SDK 版本,只需配置 qmapAPIKey 即可

常见问题

1. iOS 中 wx.getLocation 没有回调?

请检查一下 project.miniapp.json 是否正确配置了 iOS 中地理位置相关的隐私信息访问许可描述,尤其是NSLocationWhenInUseUsageDescriptionAlt text

2. wx.chooseLocation 打开的页面一直在 loading 中?

请检查问题1中的权限配置是否完成,再检查 qmapAPIKey 是否有周边推荐(explore)关键词输入提示 这两个接口的额度是否正常,如没有额度需要先申请额度,如额度已使用完请提升额度。