因为不同页面之间需要用到用户信息,所以需要将用户信息设为全局变量
在app.js增加如下代码:
App({
globalData:{
userInfo:null
}, ...
在第一个页面的wxml设置button
<button
class='bt1'
bindtap='goSearch'
wx:if="{{canIUse}}"
open-type="getUserInfo"
bindgetuserinfo="bindGetUserInfo"
>
授权登录
</button>
在第一个页面的js设置:
data: {
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.getSetting({
success(res) {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success(res) {
var app =getApp();app.globalData.userInfo=res.userInfo;
}
})
}
}
})
},
bindGetUserInfo(e) {
console.log(e.detail.userInfo)
},
goSearch:function(){
//页面跳转
wx.navigateTo({
url: '/pages/search/search',
})
},
第一个页面的js:
data: {
userInfo:{},
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var app = getApp();
this.setData({
userInfo: app.globalData.userInfo
})
wx.getSetting({
success:function(res){
}
})
},
第二个页面的wxml
<text>{{userInfo.gender}}</text>