现在使用 wx.getUserInfo 是不会在出现获取用户信息弹框的 官方文档上面是要引导用户授权 但是具体方法没有详细列出,只是说使用<button open-type="getUserInfo"></button> 来引导。
这里我将说一下引导用户授权的详细方法 先上图
以下所有的代码仅供参考,app.js中代码量太大我都是局部复制出来的
第一步
先要制作一个页面,把这个页面当做你小程序一打开展示给用户的页面 在app.json 文件中把 这个页面路径写在 pages 下第一行 。
<view class="container">
<view class="login-icon">
<image class="login-img" src="/images/bg2.png" style="width:{{windowWidth+'px'}};height:{{windowHeight+'px'}}"></image>
</view>
<!--按钮-->
<view class="loginBtnView">
<text>申请获取以下权限</text>
<text>获取你的公开信息(昵称.头像等)</text>
<button class="loginBtn" bindgetuserinfo='getUserInfo' open-type='getUserInfo'>授权登录</button>
</view>
</view>
第二部在app.js获取code。 具体如下
//获取用户信息,
// 小程序一打开先会运行app.js中的onLaunch函数 定义userinfo变量保存所有用户信息的 获取user这个缓存的内容
onLaunch(options) {
var _this=this
var userinfo = wx.getStorageSync('user');
// 如果不存在 调用getUserInfo()函数获取code值
if (!userinfo) {
this.getUserInfo();
} else {
// 如果存在 全局变量userInfo = wx.getStorageSync('user');缓存值中的内容
this.globalData.userInfo = JSON.parse(userinfo);
}
},
//此函数是为了判断用户有没有获取 临时登录凭证code 通过code才能在获取 session_key 和 openid 等。
getUserInfo: function (cb) {
var that = this
if (this.globalData.userInfo.code) {
typeof cb == "function" && cb(this.globalData.userInfo)
} else {
wx.login({
success: function (res) {
//获取code 并把它保存到globalData中
var code = res.code;
_this.globalData.code = code
}
});
}
},
第三步 就是在 第一步建的的这个页面中来响应 授权 具体如下:
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
// 当code获取到后 就可以直接跳转到你的小程序主页了 我的小程序主页是pages下的index
if (app.globalData.userInfo.code) {
wx.redirectTo({
url:'/pages/index',
})
}
},
/**
* 获取用户信息
*/
getUserInfo(res) {
app.globalData.userInfo = res.detail.userInfo;
app.globalData.userInfo.iv = res.detail.iv;
app.globalData.userInfo.encryptedData = res.detail.encryptedData;
app.globalData.userInfo.signature = res.detail.signature;
app.globalData.userInfo.code = app.globalData.code;
// 把获取的用户信息放在本地缓存中
wx.setStorageSync('user', JSON.stringify(app.globalData.userInfo));
},
这里我把 我的app.js 中globalData的内容给大家看下 。只要是小程序经常用到的变量都可以保存到里面
好了以上就是引导用户授权获取用户信息的步骤,有什么不清楚的,或者更好的方法可以留言