获取微信收货地址

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分钟快速了解微信小程序如何获取收货地址,耶稣也拦不住,我说的!!!

5分钟快速了解微信小程序如何获取收货地址,耶稣也拦不住,我说的!!!

微信支付开发 收货地址共享接口V2

微信自定义分享(含微信共享收货地址)

php开发微信支付获取用户地址