uni-app 微信要改getUserInfo接口了,是否会同步修改
uni-app 微信要改getUserInfo接口了,是否会同步修改
操作步骤:
2021年4月13日后发布新版本的小程序,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>
获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。
新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
预期结果:
2021年4月13日后发布新版本的小程序,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>
获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。
新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
实际结果:
2021年4月13日后发布新版本的小程序,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>
获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。
新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
bug描述:
2021年4月13日后发布新版本的小程序,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>
获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。
新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本号 | 10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.1.3 |
手机系统 | Android |
手机系统版本号 | Android 11 |
手机厂商 | 华为 |
手机机型 | p20 |
页面类型 | vue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app 微信要改getUserInfo接口了,是否会同步修改的实战教程也可以访问 https://www.itying.com/category-93-b0.html
同问
同问
同问
解决了。1.05的开发工具表面上调试行,发行模式不行。但代码传上去了在真机上也行。就直接用的uni.getUserProfile() 命令。
请教一下是怎么解决的,我已经更新了但还是提示not a function
回复 金满斗: 正式版的可以吗
总是提示这个 “getUserProfile:fail can only be invoked by user TAP gesture.”,请问你们怎么解决的呢
避坑:小程序基础库 2.14.0
同问,官方改接口吗?
同问,官方这边有什么解决的方案可以提供一下吗
官方最初发表的公告说 4月13号后才会弃用,但提前了那么久。。。
首先你的按钮只能是普通的按钮,去掉getuserinfo的声明,使用@click
微信开发者工具: 1.05.2103190
uniapp: 3.1.7.20210330
完成以上:
直接使用
uni.getUserProfile()
昨天还ok的,今天下午忽然就遇到这个问题了,一搜微信官方开发文档,果然~
微信开发者工具:1.05.2102010
HBX版本:2.9.3
[sm]:634 uni_getUserInfo fail: {errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.”}
把HBX改成最新版本,直接替换方法名不行,还得改不少其他东西,获取昵称、头像,都要授权
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html
data 里加一个canIUseProfile初始为false
onLoad 里加一段判断
if( wx.getUserProfile ){
console.log(’–check getUserProfile–OK’);
this.canIUseProfile = true;
}
methods 里新老都用同一个方法来处理:
GetUserInfo : function(e){
//旧版本方式
if( this.canIUseProfile == false ){
//获取授权信息
if(e.detail.userInfo){
console.log('用户允许了授权')
console.log( e.detail.userInfo ); //1.拿到基本的微信信息!!
//继续过去的老方法代码,略……
}
//新版本方式
}else{
var that = this;
wx.getUserProfile({
desc : '用于完善用户资料',
lang : 'zh_CN',
success : function( res ){
console.log( 'wx.getUserProfile=>用户允许了授权' );
console.log( res.userInfo );
// console.log( res.rawData );
console.log( res.signature );
console.log( res.encryptedData );
console.log( res.iv );
// console.log( res.cloudID );
/* 以下是网友说的,我还没来得及测试:
按新方案的意思,encryptedData,iv,rawData,signature这几个属性用不上了。
小程序端wx.getUserProfile()获取到userInfo,wx.login()获取到code,
这两个传给后端,code通过code2session接口获取到unionid,openid,session_key等;
原有的拿session_key解密encryptedData的逻辑不需要了,毕竟encryptedData也只是比userInfo多了openid和unionid。
*/
}
fail : function( res ){
console.log('wx.getUserProfile=>用户拒绝了授权');
console.log( res );
},
});
}
}
解密看来是真的不需要了,2.16才有encryptedData、signature这几个属性,但是解密之后并没有什么有用的信息,
但是code2session还是有用的,才可以得到OpenId
2.16.0即可
APP登陆授权有影响吗?
// 注意不能再 open-type=“getUserInfo”
<text @click=“getUserInfo”>请登录</text>
总是提示这个 “getUserProfile:fail can only be invoked by user TAP gesture.”,请问你们怎么解决的呢
也就是要把这个方法放到一个button里面
回复 loveCoding: 嗯嗯。放uni.showModal也行
不能写到一个回调方法里面,不然会报错getUserProfile:fail can only be invoked by user TAP gesture 淦