<view @click=getUserInfo">获取微信信息</view>
// 获取用户信息
getUserInfo() {
if(thisisShow){//防止多次点击
thisisShow = false
unigetUserProfile ({
desc: "获取个人信息",
success: (res) => {
thisuserInfo = resuserInfo
thisisShow = true
},
fail: getUserProfileFail => {
thisisShow = true
unishowToast({
title: '授权失败',
mask: false,
duration: 1000,
icon: 'none',
})
}
})
}
},
<button type="default" open-type="getPhoneNumber" @getphonenumber="ongetPhoneNumber">授权获取手机号登录</button>
// 获取手机号码
ongetPhoneNumber(e) {
if (edetailerrMsg == "getPhoneNumber:fail user deny") { //用户拒绝授权
//拒绝授权后d出一些提示
unishowToast({
title: '拒绝授权',
mask: false,
duration: 1000,
icon: 'none',
})
} else { //允许授权
apppostData('url',{
key: appglobalDatasession_key,
encryptedData: edetailencryptedData,
iv: edetailiv
})then(res=>{
consolelog("获取手机号码",res)
thismobile = resdataphoneNumber
unisetStorageSync('xmfTel',resdataphoneNumber)
})catch(err=>{
consolelog(err)
})
}
},
微信小程序对于用户信息获取进行了接口调整。调用 wxgetUserInfo(Object object) 不会再由d窗授权提示。在已授权时,可以直接获取用户信息;否则则直接进入 fail 回调函数。
用户的授权状态可以用 wxgetSetting() 接口的请求的结果
resauthSetting['scopeuserInfo'] 来判断。
那么在接口调整后,再进行授权登录则需要通过 open-data 来实现。
注:如果用户微信版本不支持open-data,需要提示用户升级。这次接口的调整实际上使得按一次d窗中的授权按钮即可授权的 *** 作变成了需要按两次,并且需要额外设计授权页面或者在主页先进行一次d窗引导用户授权。实际上更加繁琐。
一个很常用的功能,但是我还是发现有一些需要注意的地方在里面,简单记录一下。
第一个问题就是这个 button 组件需要添加 open-type 属性,并指定为 getUserInfo 类型,来获取用户基本信息。还有另外一种做法,具体可以参考 官方文档的说明 。
放一个动图哈哈哈
js 部分就是响应点击事件,使用 api wxgetUserInfo(Object object)
获取用户信息,注意传递给 wxgetUserInfo 的是一个字典其中包含了两个函数分别作为成功和失败的回调函数(callback function)
注意 this 的指代对象发生了变化,最开始的this是指代 Page() 构造出来的对象,在函数里面使用 this 会说未指定,所以我们使用了 that 承接一下,这也算传统艺能咯。
另外一点:获取用户信息时会自动d出一个对话框问用户是否提供信息,这个d窗只d出一次,如果用户点击了拒绝后来又想改为允许,可以使用 wxopenSetting({})
除了可以获取用户的昵称之外还有很多信息可以得到,还有一个比较常用的就是用户头像了也就是 resuserInfoavatarUrl 。
微信小程序button api
>
在设置获取微信用户信息之前,你需要先配置好微信登录这个功能。然后准备好一个点击触发获取用户信息的组件(触发组件)。然后跟着以下两个步骤来实行:
第一步,创建“请求微信用户信息”事件:打开事件中心,点击“+”。接着点击请求微信用户信息,最后创建请求微信用户信息事件。
第二步,创建获取用户信息触发器:选中触发组件,点击检查器面板的触发器图标,创建获取用户信息的触发器,最后配置获取用户信息的触发器。
完成以上两个步骤就OK啦。
1、appid: 微信小程序/公众号的唯一凭证,即 AppID。
获取途径:可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
用途:小程序的 AppID 相当于小程序平台的一个身份z,会在很多场景中使用,比如小程序的登录、授权等
2、openID: openID 是微信生态下 应用的唯一标识 , ,即同一个用户在不同的小程序下的openid是不同的。
获取途径:调用 authcode2Session 接口,通过code(登录凭证,调用wxlogin获取)+appid+appsecret(小程序密钥,获取方式和appid一样)可以换取openid,即 静默授权。
用途:用于在开发者系统中标识用户信息
3、UnionID:UnionID 是微信生态下 用户的唯一标识 ,换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
获取途径:绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。
1)开发者可以直接通过 wxlogin + code2Session 获取到该用户 UnionID,无须用户授权。
2)小程序端调用云函数时,可在云函数中通过 CloudgetWXContext 获取 UnionID。
用途:标识同一个微信开放平台下的用户,可用于去重判断
也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;
需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。
1、静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。
2、静默授权的过程:
1)调用 wxlogin() 获取 临时登录凭证code
2)调用 authcode2Session 接口,换取用户唯一标识 openID
3)调用本地后台服务,将 openID 映射到本地的 userId
微信开发文档-小程序登录流程
参考文章:
1、 微信小程序用户授权登录
2、 微信第三方登录(静默授权和非静默授权)
3、 openid会变吗?微信小程序开发中的appid、openid、unionid使用总结
1小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口
2在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid,这个id是用户唯一的id并且不
3获取用户信息很简单,并且不需要自己的服务器处理,只需要小程序端提供的API。前端页面
4这个时候就可以把该用户的openid 和 昵称,头像,一块调用自己服务端接口,保存到数据
以上就是关于uniapp微信小程序获取用户信息,手机号码全部的内容,包括:uniapp微信小程序获取用户信息,手机号码、微信小程序用户信息获取接口的调整、微信小程序获取当前用户信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)