uniapp获取用户数据昵称为“微信用户
时间: 2023-11-29 10:05:34 浏览: 91
在使用uniapp获取用户数据时,如果昵称为“微信用户”,则说明用户没有授权获取昵称的权限,此时只能获取到默认的昵称。如果需要获取用户真实昵称,需要先引导用户授权获取用户信息,然后再使用uni.getUserInfo()方法获取用户信息。同时,需要注意在uniapp中使用wx.getUserInfo()方法无法获取到用户信息,需要使用uni.getUserInfo()方法。
相关问题
uniapp 获取昵称
在uniapp中,最初可以使用uni.getUserProfile方法来获取用户的昵称。然而,从11月份开始,这个方法已经被收回,无法再使用了。不过,你可以使用一种闭坑指南中提到的方法来获取用户的昵称。具体操作如下:
1. 在点击获取昵称的事件处理函数中,使用uni.createSelectorQuery().in(this)方法获取节点。
2. 使用.select("#nickname-input")方法选择昵称输入框的节点。
3. 使用.fields({ properties: ["value"] })方法获取该节点的value属性,即昵称的值。
4. 通过执行.exec((res) => {})方法获取节点的返回结果。
5. 在回调函数中,可以通过res.value来获取到昵称的值。
6. 可以使用trim().length方法来判断用户是否输入了昵称(当昵称去除空格后的长度为0时表示未输入昵称)。
7. 根据需要进行相应的处理,比如弹出提示信息或进行其他操作。
注意,这种方法需要在真机调试中使用,因为微信开发者工具的原生点击获取昵称无法采用获取dom的方法去实时刷新data里的数据[2]。这个方法可能是你大哥找到的,在最开始实现展示用户的头像和昵称时,并没有使用getUserProfile方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [uniapp之最新获取用户昵称以及头像](https://blog.csdn.net/LJM51200/article/details/128589119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [【小程序】新版uniapp登录流程以及获取头像和昵称](https://blog.csdn.net/weixin_44899940/article/details/129126600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
uniapp 微信小程序获取用户手机号用哪个方法
在uniapp中,可以使用微信小程序的API获取用户手机号码。具体方法为:
1. 在 `pages.json` 文件中声明需要使用的 API:
```json
{
"pages": [
{
"path": "pages/index/index",
"config": {
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序定位"
},
"scope.userInfo": {
"desc": "你的昵称、头像将展示在小程序中"
},
"scope.phoneNumber": {
"desc": "你的手机号码将用于小程序身份验证"
}
}
}
}
]
}
```
2. 在页面中调用 `wx.login()` 方法获取用户的 code,然后调用 `wx.getUserInfo()` 方法获取用户的加密数据和签名信息。
```javascript
async getPhoneNumber(e) {
try {
const { code } = await uni.login({
provider: 'weixin'
})
const { encryptedData, iv } = e.detail
const { signature, rawData } = await uni.getUserInfo({
provider: 'weixin'
})
// 发送请求到后台进行解密
// ...
} catch (e) {
console.log(e)
}
}
```
3. 在后台对用户的加密数据进行解密,获取用户的手机号码。
具体的解密方法可以参考微信小程序官方文档:[获取用户手机号](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html)。
阅读全文