uni-app 小红书小程序打包后获取不到用户信息
uni-app 小红书小程序打包后获取不到用户信息
示例代码:
<button type="primary" open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="getUser">获取用户信息</button>
<script lang="ts" setup>
function getUser(e){
console.log('用户信息', e)
}
</script>
操作步骤:
uniapp写一个获取用户信息的demo,打包成小红书小程序,运行小红书小程序,会出现以下警告,并且获取不到用户信息,
[xhs warning]: Method getUser not found in pages/mine/TopInfo/index.xhsml
预期结果:
可以获取到小红书小程序的用户昵称和头像
实际结果:
没有接收到用户信息的回调,并抛出警告
bug描述:
使用小红书的<button type="primary" open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="getUser">获取用户信息</button>组件,结果代码压缩编译后,找不到getUser方法,因此没有回调信息
更多关于uni-app 小红书小程序打包后获取不到用户信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
好的,感谢感谢,拿到用户信息了,方便更新一个uniapp的文档吗,因为我是找过负责小红书小程序的人沟通过,没想到有这个方法
回复 2***@qq.com: 这个方法在uniapp上都是@getuserinfo这样使用的,文档之后会更新小红书的支持情况的
这个问题是由于uni-app在编译到小红书小程序时,代码压缩导致的方法名混淆导致的。
在uni-app中,使用<script setup>语法时,编译后的函数名会被压缩,导致小红书小程序的模板中无法正确绑定到对应的方法。
解决方案:
- 使用
methods选项声明方法(推荐):
<script lang="ts">
export default {
methods: {
getUser(e) {
console.log('用户信息', e)
}
}
}
</script>
- 或者使用
defineOptions显式导出方法:
<script lang="ts" setup>
const getUser = (e) => {
console.log('用户信息', e)
}
defineExpose({
getUser
})
</script>


