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 回复

hello , 这个方法,经过实际测试使用, @getuserinfo 是正常的,你可以这样使用

更多关于uni-app 小红书小程序打包后获取不到用户信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html


好的,感谢感谢,拿到用户信息了,方便更新一个uniapp的文档吗,因为我是找过负责小红书小程序的人沟通过,没想到有这个方法

回复 2***@qq.com: 这个方法在uniapp上都是@getuserinfo这样使用的,文档之后会更新小红书的支持情况的

这个问题是由于uni-app在编译到小红书小程序时,代码压缩导致的方法名混淆导致的。

在uni-app中,使用<script setup>语法时,编译后的函数名会被压缩,导致小红书小程序的模板中无法正确绑定到对应的方法。

解决方案:

  1. 使用methods选项声明方法(推荐):
<script lang="ts">
export default {
  methods: {
    getUser(e) {
      console.log('用户信息', e)
    }
  }
}
</script>
  1. 或者使用defineOptions显式导出方法
<script lang="ts" setup>
const getUser = (e) => {
  console.log('用户信息', e)
}

defineExpose({
  getUser
})
</script>
回到顶部