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 onLoad
usarlo para wx.getSetting
verificar 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.
- Obtenga la dirección de envío del usuario
- Evento de clic de enlace
- Llame a la API incorporada del applet para obtener la dirección del usuario
wx.chooseAddress
- Obtenga el estado de permiso del usuario para el applet otorgado para obtener la dirección
scope
- Si un usuario hace clic obtienen direcciones cuadro de mensaje determinado , entonces
authSetting scope.address
elscope
valor detrue
llamar directamente API para obtener una dirección - Suponiendo que el usuario nunca ha llamado a la API de dirección, entonces
scope
el valor esundefined
llamar directamente a la API para obtener la dirección - Suponiendo que el usuario hace clic en el cuadro de solicitud para cancelar la dirección de entrega ,
scope
el valor esfalse
, en este momento, el usuario debe ser inducido a abrir la página de configuración de autorizaciónwx.openSetting
, y cuando el usuario recupera la autoridad de la dirección, se llama a la API para obtener la dirección.
- Si un usuario hace clic obtienen direcciones cuadro de mensaje determinado , entonces
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 onLoad
usar la wx.getSetting
vista 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
- Obtenga la dirección del usuario, enlace el evento de clic y considere tres casos de clic de usuario.
- Para obtener permisos de usuario, puede usar las
open-type
propiedades del botón
¡Me gusta si es útil !