解决:uniapp项目中调用小程序的chooseAddress() API失效
目录
问题描述
解决方案
问题描述
使用 Hbuilder X 编辑器和 uni-app 框架开发小程序项目,在调用小程序提供的 uni.chooseAddress() API实现选择收货地址的功能时,点击选择收货地址没有反应,获取不到用户收货地址,API失效了
<!-- 省略其它代码... -->
methods: {// 选择收货地址async chooseAddress() { // 定义 chooseAddress 事件处理函数// 1. 调用小程序提供的 chooseAddress() 方法,即可使用选择收货地址的功能// 返回值是一个数组:第 1 项为错误对象;第 2 项为成功之后的收货地址对象const [err, succ] = await uni.chooseAddress().catch(err => err)// 2. 用户成功的选择了收货地址if (err === null && succ.errMsg === 'chooseAddress:ok') {// 为 data 里面的收货地址对象赋值this.address = succconsole.log(succ)}}
}
<!-- 省略其它代码... -->
调用uni.chooseAddress() API,没有任何反映,无法实现跳转到收货地址页面
解决方案
uni-app官方提供的api点击不会跳转,不知为何?小程序官方有做说明:地理位置接口新增与相关流程调整 | 微信开放社区
另,关于uni.chooseAddress() 官方介绍:uni.chooseAddress(OBJECT) | uni-app官网
目前,我们可以在uniapp项目根目录中的manifest.json文件的源码视图里的mp-weixin这个节点新增两个属性节点即 requiredPrivateInfos 和 permission 配置项,如下:
"mp-weixin" : {/* 小程序特有相关 */"appid" : "wx5346bceeae7dd1da","setting" : {"urlCheck" : false},"usingComponents" : true,"unipush" : {"enable" : false},"requiredPrivateInfos": ["getFuzzyLocation","choosePoi","chooseAddress"],"permission": {"scope.userLocation": {"desc": "你的位置信息将用来进行接口调试"}}
}
最后,重新运行编译即可生效
👉 你可能还想了解:uniapp开发时pages.json和manifest.json注释报错解决方案