Applet implementa la dirección de usuario y la autorización de información del usuario

Applet implementa la autorización de dirección de usuario

Primero, bindtap="getAddress"vincule el evento de clic a través del botón y almacene la información del usuario obtenida en los datos; después del almacenamiento, para evitar la ventana emergente la próxima vez, debe onLoadusarlo para wx.getSettingverificar si el usuario ha sido autorizado. Si está autorizado, puede obtener directamente los datos y No aparece una ventana emergente.

Nota especial : si el usuario hace clic para cancelar la autorización , habrá una situación en la que volverá a hacer clic en el botón y no podrá reaccionar, por lo que aquí debe procesarse, es decir, determinar primero la autorización y luego decidir qué método llamar.

El mensaje de aviso después de hacer clic en el botón

  1. Obtenga la dirección de envío del usuario
    1. Evento de clic de enlace
    2. Llame a la API incorporada del applet para obtener la dirección del usuario wx.chooseAddress
  2. Obtenga el estado de permiso del usuario para el applet otorgado para obtener la direcciónscope
    1. Si un usuario hace clic obtienen direcciones cuadro de mensaje determinado , entonces authSetting scope.addressel scopevalor de truellamar directamente API para obtener una dirección
    2. Suponiendo que el usuario nunca ha llamado a la API de dirección, entonces scopeel valor es undefinedllamar directamente a la API para obtener la dirección
    3. Suponiendo que el usuario hace clic en el cuadro de solicitud para cancelar la dirección de entrega , scopeel valor es false, en este momento, el usuario debe ser inducido a abrir la página de configuración de autorización wx.openSetting, y cuando el usuario recupera la autoridad de la dirección, se llama a la API para obtener la dirección.

Página de configuración de autorización

Después de que el usuario abra manualmente el permiso, haga clic nuevamente y la API de dirección de obtención se llamará normalmente

onLoad: function () {
    //获得地址信息
   wx.getSetting({
     success: res => {
       if (res.authSetting['scope.address']) {
         wx.chooseAddress({
           success: res => {
             this.setData({
               hasAddress: true,
               address: res
             })
           }
         })
       }
     }
   })
   
  },
  // 获取地址权限
  getAddress(){
    wx.getSetting({
      success: (result)=>{
        const scopeAddress = result.authSetting["scope.address"]
        if(scopeAddress===true||scopeAddress===undefined){
          wx.chooseAddress({
            success: (result)=>{
              console.log(result)
              this.setData({
                address:result
              })
            },
          });
        }
        else{
          wx.openSetting({
            success:(result)=>{
              console.log(result)
            }
          })
        }
      }
    });
  }

Applet implementa la autorización de información del usuario

Primero, open-type="getUserInfo"obtenga el permiso del usuario a través del botón , y luego bindgetuserinfo="getUserInfo"almacene la información del usuario obtenida en los datos vinculando la función de devolución de llamada (el nombre de la función está personalizado); después del almacenamiento, para evitar la ventana emergente la próxima vez, debe onLoadusar la wx.getSettingvista Si el usuario ha autorizado, si está autorizado, puede obtener datos directamente sin ventana emergente

  onLoad: function () {
    wx.getSetting({
     success: res => {
       console.log(res)
       if (res.authSetting['scope.userInfo']) {
         // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
         wx.getUserInfo({
           success: res => {
             console.log(res)
             this.setData({
               login: true,
               avatarUrl: res.userInfo.avatarUrl,
               userInfo: res.userInfo,
               cloudID: getApp().globalData.cloudID
             })
           }
         })
       }
     }
   })
  },
  getUserInfo() {
    wx.getSetting({
      success: (res) => {
        const scopeUserInfo = res.authSetting["scope.userInfo"]
        if (scopeUserInfo === true) {
          wx.getUserInfo({
            success: (res) => {
              this.setData({
                avatarUrl: res.userInfo.avatarUrl,
                userInfo: res.userInfo,
                cloudID: getApp().globalData.cloudID
              })
            },
          });
        } 
      }
    });
 }

Resumen

  1. Obtenga la dirección del usuario, enlace el evento de clic y considere tres casos de clic de usuario.
  2. Para obtener permisos de usuario, puede usar las open-typepropiedades del botón

¡Me gusta si es útil !

128 artículos originales publicados · 52 elogios · 20,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/weixin_44523860/article/details/105332127
Recomendado
Clasificación