今天在写小程序程序项目时,需要获取当前位置的功能,在使用小程序 API wx.getLocation
时,提示“getLocation 需要在 app.json 中声明 permission 字段”。如上图所示:
查看微信小程序官方文档,也有说明:调用前需要用户授权 scope.userLocation
。
授权说明:
部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope
,用户选择对 scope
来进行授权,当授权给一个 scope
之后,其对应的所有接口都可以直接使用。
此类接口调用时:
如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
如果用户已授权,可以直接调用接口;
如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。开发者需要兼容用户拒绝授权的场景。
解决方法:
在 app.json 里面增加 permission 属性配置(小游戏需在game.json中配置)。
打开项目根目录的 app.json
文件,再大括号 { }
内添加如下代码:
"permission": { "scope.userLocation": { "desc": "您的位置信息用于快速录入检查地点" } }
注意用逗号分隔开,如下图:
添加完保存就可以正常使用获取位置功能啦。