获取微信收货地址
Posted 郭郭郭牧鑫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取微信收货地址相关的知识,希望对你有一定的参考价值。
获取收货地址是一个难点
首先我是将我所需的方法进行了封装
/**
* promise 形式 getSetting
*/
export const getSetting=()=>{
return new Promise((resolve,reject)=>{
// wx.getsetting是获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限
wx.getSetting({
success: (result) => {
resolve(result);
},
fail: (err) => {
reject(err);
}
});
})
}
/**
* promise 形式 chooseAddress
*/
export const chooseAddress=()=>{
return new Promise((resolve,reject)=>{
//获取用户收货地址
wx.chooseAddress({
success: (result) => {
resolve(result);
},
fail: (err) => {
reject(err);
}
});
})
}
/**
* promise 形式 openSetting
*/
export const openSetting=()=>{
return new Promise((resolve,reject)=>{
//授权,也可以用button
wx.openSetting({
success: (result) => {
resolve(result);
},
fail: (err) => {
reject(err);
}
});
})
}
然后将文件引入到所需的文件js中
import { getSetting, chooseAddress, openSetting, showModal} from "../../utils/asyncWx.js";
Page({
/**
* 页面的初始数据
*/
data: {
address: {}
},
// 点击 收货地址
async handleChooseAddress() {
try {
// 1 获取 权限状态
const res1 = await getSetting();
const scopeAddress = res1.authSetting["scope.address"];
// 2 判断 权限状态
if (scopeAddress === false) {
await openSetting();
}
// 4 调用获取收货地址的 api
let address = await chooseAddress();
address.all = address.provinceName + address.cityName + address.countyName + address.detailInfo;
// 5 存入到缓存中
wx.setStorageSync("address", address);
} catch (error) {
console.log(error);
}
},
onShow() {
// 获取缓存中的收货地址信息
const address = wx.getStorageSync("address");
this.setData({ address });
}
})
以上是关于获取微信收货地址的主要内容,如果未能解决你的问题,请参考以下文章
5分钟快速了解微信小程序如何获取收货地址,耶稣也拦不住,我说的!!!