获取用户地址代码

// pages/cart/index.js 

import {getSetting,chooseAddress,openSetting} from '../../utils/asyncWx.js'
import regeneratorRuntime from "../../lib/runtime/runtime.js";

Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:{}
  },
 

  // 点击收获地址
  async handleChooseAddress(){
     // 1  获取权限状态
    //   wx.getSetting({
    //     success: (result) => {
    //     //  2 权限状态
    //      const scopeAddress = result.authSetting['scope.address'];
    //      if(scopeAddress === true || scopeAddress == undefined){
    //         wx.chooseAddress({
    //           success: (result1) => {
    //             console.log(result1)
    //           } 
    //         });
    //      }else{
    //        // 3 用户以前拒绝过授予权限 先诱导用户打开授权页面
    //        wx.openSetting({
    //          success:(result2)=>{
    //            console.log(result2)
    //           // 4 可以调用 收获地址代码
    //           wx.chooseAddress({
    //             success: (result3) => {
    //               console.log(result3)
    //             } 
    //           });
    //          }
    //        })
    //      } 
    //    } 
    //  });  

    try{
      // 1  获取权限状态
      const res1 = await getSetting(); 
      const scopeAddress = res1.authSetting['scope.address']; 
      //  2 判断 权限状态
      if(scopeAddress === false){  
        // 3 诱导用户打开授权页面
        await openSetting();  
      }
       // 4 调用获取 收货地址都 api 
      const address = await chooseAddress(); 
      address.all = address.provinceName + address.cityName + address.countyName + address.detailInfo;
      // 存入到缓存中
      wx.setStorageSync('address', address); 
      this.setData({
        address
      })
    }catch(error){
      console.log(error)
    }
 
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      // 1 获取缓存中的收货地址信息
      const address = wx.getStorageSync('address'); 
      // 2 给 data 赋值
      this.setData({
        address
      })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
 
-----------------------------------------------
 
<!--pages/cart/index.wxml-->

<!--收货地址-->
<view class="revice_address_row">
 
  <!-- 当收货地址 不存在 按钮显示--> 
  <view class="address_btn" wx:if="{{!address.userName}}">
    <button bindtap="handleChooseAddress" type="primary" plain> 获取收货地址 </button> 
  </view>

  <!-- 当收货地址  存在 详细信息显示-->
  <view wx:else class="user_info_row">
    <view class="user_info">
      <view> {{address.userName}}</view> 
      <view> {{address.all}}</view> 
    </view>

    <view class="user_phone">
       {{address.telNumber}}
    </view>
       
  </view>
     
</view>
  -----------------------------------

export const getSetting = () =>{
  return new Promise((resolve,reject)=>{
    wx.getSetting({
      success: (result) => {
        resolve(result)
      },
      fail:(err)=>{
        reject(err)
      }
    })
  }) 
}
 
export const chooseAddress = () =>{
  return new Promise((resolve,reject)=>{
    wx.chooseAddress({
      success: (result) => {
        resolve(result)
      },
      fail:(err)=>{
        reject(err)
      }
    })
  }) 
}


export const openSetting = () =>{
  return new Promise((resolve,reject)=>{
    wx.openSetting({
      success: (result) => { 
        resolve(result)
      },
      fail:(err)=>{
        reject(err)
      }
    })
  }) 
}
posted @ 2021-01-24 21:31  13522679763-任国强  阅读(236)  评论(0)    收藏  举报