微信小程序调用wx.login后能够得到客户的微信信息,这时我们可以利用openid来获取数据库中保存的用户信息,使用wx.request 接口来与后台通信,获取到客户的数据库信息。
代码如下:
getuserinfo:
function
() {
//获取数据库中个人信息的方法
var
that =
this
//console.log(app.globalData.openid)
wx.request({
url: url +
'/api.php'
,
//仅为示例,并非真实的接口地址
data: {
userinfo:
'1'
,
ooopenid: app.globalData.openid
},
success:
function
(res) {
console.log(res.data)
app.globalData.user = res.data
var
c = Number(res.data.score) >
5
?
5
: Number(res.data.score)
var
array=
new
Array(c)
console.log(array)
that.setData({
gold:res.data.gold,
user: res.data,
//用户信息
score: array,
//将星转换为数组
//推送是否
})
app.globalData.score=res.data.gold
}
})
},
使用此方法,有一个问题,我们的参数是 app.globalData.openid ,然而微信小程序在登入的时候,globaldata并不是瞬间获取,他也是需要与后台利用code才能兑换出来,这里如果网速有问题,多半会获取不到客户的openid,需要有一个时间差。解决这样的问题有两种思路,第一种是异步,第二种是延时。
我采用的是延时,利用setimeout来获取,利用settimeout时,我们并不能确定到底多久globaldata.openid才不是空,所以我们利用判断的方法,持续循环。
Countdown()
function
Countdown() {
setTimeout(
function
() {
if
(app.globalData.openid ==
''
| app.globalData.openid ==
null
) {
Countdown()
}
else
{
that.getuserinfo()
}
},
500
)
}