基本使用 open-data 是微信小程序官方提供的组件,作用是用来展示微信开放的数据。 展示用户头没枝像:
设置样式 若需要给这个组件设置样式,需要在外层包一个 view 标签,为这个标签写样式。如让这个头像显示成圆枯迹敏形:
二、使用 wx.getUserInfo (不推荐使用)
过去获取用户信息一般都是用这种方式。使用时,若用户未授权,会直接d出授权框。 为了优化用户体验,调用这个接口将无法d出授权框州此,而是会默认调用失败。
退出登录信息
多次拒绝登录和允许登录微信小程序的登录获取用户信息,是通过微信d出窗口,用户可点击允许 和拒绝两个按钮,点击允许,则获取用户信息登录成功,若点击拒绝,闭毕则获取失败,可通过二次请轿掘芹求调散渗用d起获取用户信息窗口。
具体代码如下:
//app.js
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
console.log('logs',logs)
},
getUserInfo:function(cb){
var that = this
//调用登录接口
function getOpenid(backMsg){
that.globalData.userInfo = backMsg.userInfo
that.globalData.encryptedData = backMsg.encryptedData
that.globalData.iv = backMsg.iv
that.globalData.login = true
console.log(that.globalData.code)
wx.request({
url:that.localUrl+'Login/sendCodeLogin',
data:{
code:that.globalData.code,
encryptedData: backMsg.encryptedData,
iv:backMsg.iv
},
success:function(openData){
console.log('返回openid',openData,openData.data)
if(openData.data.code==1001){
that.globalData.openid = openData.data.data.openid
wx.setStorageSync('openid',that.globalData.openid)
wx.setStorageSync('userInfo',that.globalData.userInfo)
wx.setStorageSync('isManager', openData.data.data.isManager)
wx.showToast({
title: '登录成功',
icon: 'success',
duration: 500
})
typeof cb == "function" &&cb(that.globalData.userInfo)
}else{
wx.showLoading({
title: '登录失败'
})
setTimeout(function () {
wx.hideLoading()
}, 500)
}
}
})
}
wx.login({
success: function (msg) {
console.log('code',msg)
if(msg.code){
that.globalData.code = msg.code
if(that.globalData.login==false){
wx.openSetting({
success: function (data) {
if(data) {
if (data.authSetting["scope.userInfo"] == true) {
//loginStatus = true
wx.getUserInfo({
withCredentials: false,
success: function (res) {
console.log('第二次成功',res)
getOpenid(res)
},
fail: function (res) {
that.globalData.login = false
console.log('二次失败',res)
}
})
}else{
that.globalData.login = false
console.log('二次失败02')
}
}
},
fail: function () {
console.info("设置失败返回数据")
}
})
}else{
wx.getUserInfo({
success: function (res) {
console.log('第一次成功',res)
getOpenid(res)
},fail:function(msg){
that.globalData.login = false
console.log('第一次失败',msg)
}
})
}
}
},
fail:function(res){
console.log(res)
}
})
},
globalData:{
userInfo:null,
encryptedData:null,
iv:null,
openid:null,
code:null
}
})
1、<open-data></open-data>:只是简单的获取头像、用户名用于显示
其中,type="userAvatarUrl"是获取用户头像,type="userNickName"是获取用户昵称,具体使用详情查看 小程序开发文档 ,此方法仅用于直接简单的展示用户信息。
2、使用 <button open-type="getUserInfo">获取用户信息
在用户未授权过的情况下调用此接孙笑口,将不再出现授权d窗,会直接进入 fail 回调。
在用户已授权的情况下调用此接口,可成功获取用户信息则链含。
1、唤拿在项目首页直接调用getUserInfo方法,若从未授权过,跳转到授权页面引导用户手动授权
需注意: bindgetuserinfo="onGetUserInfo"
用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致,open-type="getUserInfo"时有效。
所以,不再需要写设置页提示框以及对应的设置页面,好方便啊!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)