微信小程序地理位置接口新增与相关流程调整

一、地理位置接口新增说明

由于精确地理位置接口只允许部分类目的小程序申请使用,为了满足开发者在更多场景使用地理位置接口,自 2022 年 7 月 14 日起新增获取模糊地理位置接口(wx.getFuzzyLocation)。同时为保障用户合法权益,该接口调用前需进行准入开通申请,该接口准入规则与 wx.chooseLocation 一致。


wx.getFuzzyLocation 接口说明:

1、该接口返回的是经过模糊处理的经纬度坐标;

2、该接口支持返回 wgs84 或 gcj02 两种类型的坐标;

3、该接口需要用户授权 scope.userFuzzyLocation。


二、app.json 的配置指引

为了开发者能够正常使用获取模糊地理位置等接口,以及后续对于代码提审环节的优化(见「三、地理位置接口使用流程」),自 2022 年 7 月 14 日起开发者在使用地理位置相关接口时(共计 8 个,见表1),需要提前在 app.json 中进行配置。


1、需配置的接口列表

表1


2、配置规则

1)在代码中使用的地理位置相关接口(共计 8 个,见表1),开发者均需要在 app.json 中 requiredPrivateInfos 配置项中声明,代码格式如下:


2)表1中模糊位置信息(序号1)和精确位置信息(序号2-5)是互斥的,即声明了模糊位置信息就无法声明精确位置信息。若同时声明模糊位置信息和精确位置信息,则在编译代码时出现错误;

3)注意:自 2022 年 7 月 14 日后发布的小程序,如果未在 app.json 中声明表1中的相关接口,则小程序调用这些接口(表1)时会出现错误,在 2022 年 7 月 14 日之前发布的小程序不受影响

4)对于第三方开发者,需要在上传代码时通过参数在 ext.json 中声明其需调用的地理位置相关接口,配置规则和普通小程序的配置规则相同。


三、地理位置接口使用流程

自 2022 年 7 月 14 日起开发者如需在最新版本发布后使用地理位置相关接口,除需完成接口权限开通外,还需在 app.json(或ext.json)配置环节,具体如下:


1、接口权限开通

以下 8 个接口需完成准入开通流程:wx.getFuzzylocation、wx.getLocation、wx.onLocationChange、wx.chooseAddress、wx.choosePoi、wx.chooseLocation、wx.startLocationUpdate、wx.startLocationUpdateBackground

1)普通开发者:需要在 “小程序管理后台 -「开发」-「开发管理」-「接口设置」” 中完成权限申请;

2)第三方开发者:可通过 apply_privacy_interface 接口完成权限申请。


2、app.json(或 ext.json)配置

1)普通开发者:需在 app.json 中声明其需调用的地理位置相关接口,具体配置流程见「二、app.json 的配置指引」;

2)第三方开发者:需要在上传代码时通过参数在 ext.json 中声明其需调用的地理位置相关接口(配置方式:可通过 commit 接口配置)。


同时,为了提升开发者体验,平台在代码提审环节会协助开发者对地理位置接口进行检测,如检测出代码中包含未完成准入开通的地理位置接口,平台将再次提醒开发者确认是否需使用相关接口。

1)普通开发者:若无需使用,开发者可在提审时确认不使用该接口,即可正常进行代码提审。小程序审核通过且新版本发布完成后,平台将对小程序确认不使用的接口关闭使用权限;

2)第三方开发者:若无需使用,可在提审时通过参数声明不使用该接口(声明方式:可通过 submit_audit 接口配置),即可正常进行代码提审,审核通过后发布上线,将对其声明不使用的接口关闭使用权限。


接口英文名

submitAudit

功能描述

在调用 commit 为小程序上传代码后,可以调用本接口,将上传的代码提交审核。使用过程中如遇到问题,可在开放平台服务商专区发帖交流。

注意事项

  • 如果接口中涉及地理位置相关隐私接口,需要在提交代码的接口的 ext.json 参数中配置requiredPrivateInfos

  • 上传代码后,需要等检测任务结束后方可提交代码审核,否则提交代码审核时会出现61039报错

  • 开发者可以通过getCodePrivacyInfo接口获取检测结果,确认检测任务结束后再提交代码审核

  • 不要将上传代码和提交代码审核两个接口一起重试,否则每次上传代码后的检测任务未结束又发起新的检测任务,依旧会出现61039报错。

  • 如果检测出了代码包含了隐私相关接口,但是开发者确认并未使用,则可以通过privacy_api_not_use进行声明




有话要说