用户信息功能页用于帮助插件获取用户信息,包括 openid
和昵称等,相当于 wx.login 和 wx.getUserInfo 的功能。
在基础库版本 2.3.1 前,用户信息功能页是插件中唯一的获取 code 和用户信息的方式;
自基础库版本 2.3.1 起,在满足以下任一条件时,插件也可以直接调用 wx.login 和 wx.getUserInfo:
- 用户在该功能页中进行过授权
- 授权是以【用户 + 小程序 + 插件】为维度进行授权的,即同一个用户在不同小程序中使用同一个插件,或同一个小程序中使用不同插件,都需要单独进行授权
- 自基础库版本 2.6.3 起,可以使用 wx.getSetting 来查询用户是否授权过
- 使用插件的小程序与插件拥有相同的 AppId
- 使用插件的小程序与插件绑定了同一个 微信开放平台 账号,且使用插件的小程序与插件均与开放平台账号为同主体或关联主体
不满足以上条件时,wx.login 和 wx.getUserInfo 将返回失败。
<!--plugin/components/hello-component.wxml-->
<functional-page-navigator
name="loginAndGetUserInfo"
args="{{ args }}"
version="develop"
bind:success="loginSuccess"
bind:fail="loginFail"
>
<button class="login">登录到插件</button>
</functional-page-navigator>
// plugin/components/hello-component.js
Component({
properties: {},
data: {
args: {
withCredentials: true,
lang: 'zh_CN'
}
},
methods: {
loginSuccess: function (res) {
console.log(res.detail);
},
loginFail: function (res) {
console.log(res);
}
}
});
用户点击该 navigator
后,将跳转到如下的用户信息功能页:
在微信开发者工具中查看示例:
- 由于插件需要 appid 才能工作,请填入一个 appid;
- 由于当前代码片段的限制,打开该示例后请 手动将 appid 填写到
miniprogram/app.json
中(如下图)使示例正常运行。