小程序获取收货地址的流程
当我们把自己喜欢的商品加入购物车,想要付款的时候,如果没有收货地址系统会提示我们,而且也不能完成支付
1.当我们没有收货地址的时候,是不能完成支付的,系统会提示我们,这是没有地址的效果
现在我们来完成收货地址的操作
1.首先我们先给页面上写一个button按钮<button>添加收货地址</button>
2.然后我在给<button>按钮绑定一个事件 <button class="btn" bindtap="handleChooseAddress"> 添加收货地址 </button> 这时候我们的页面就完成了
3.然后我们在js文件中,开始写获取地址的逻辑
逻辑
1.我们在基础项目目录上创建一个文件夹,
2.然后我们在asyncWx.js中封装一下我们需要的
/**
* promise 形式 getSetting
*/
export const getSetting=()=>{
return new Promise((resolve,reject)=>{
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)=>{
wx.openSetting({
success: (result) => {
resolve(result);
},
fail: (err) => {
reject(err);
}
});
})
}
/**
* promise 形式 showModal
* @param {object} param0 参数
*/
export const showModal=({content})=>{
return new Promise((resolve,reject)=>{
wx.showModal({
title: '提示',
content: content,
success :(res) =>{
resolve(res);
},
fail:(err)=>{
reject(err);
}
})
})
}
3.然后我们到自己的js页面中,用import { getSetting, chooseAddress, openSetting,} from '路径'
4.接下来就是逻辑代买了
// 点击收货地址
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);
}
},
就ok了