uni-app中button编译open-type="getUserExtendInfo"时有问题

uni-app中button编译open-type="getUserExtendInfo"时有问题

示例代码:

<template>  
    <view class="home-popup">  
        <button class="login-mask" open-type="getUserExtendInfo" shareUserId="xxx" [@getuserextendinfo](/user/getuserextendinfo)="getuserextendinfo"></button>  
        <!-- <button class="login-mask" open-type="getPhoneNumber" @getphonenumber="getphonenumber"></button> -->  
    </view>  
</template>  
<script setup>  
    function getphonenumber(e){  
        console.log(e,'????')  
    }  
    function getuserextendinfo(e){  
        console.log(e,'????')  
    }  
</script>

操作步骤:

  • 点击button

预期结果:

实际结果:

  • 没有触发

bug描述:

//最小复现demo
下面open-type="getPhoneNumber"可以 使用上面的open-type="getUserExtendInfo"就不行了
然后看快手编辑器 两个类型按钮的写法不一样
hbuilderx的打包代码里也没有搜到对getUserExtendInfo的处理 只搜到了getPhoneNumber


更多关于uni-app中button编译open-type="getUserExtendInfo"时有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

感谢反馈,问题已确认,会再未来的版本中修复这个问题,可暂时通过替换文件的方式解决 如果是用hbuilderX开发,需要替换hbuilderx安装目录下的 /HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-kuaishou/dist/uni.compiler.js 文件 cli项目替换 node_modules/@dcloudio/uni-mp-kuaishou/dist/uni.compiler.js 文件 第112行 增加 || name === ‘getuserextendinfo’
const transformOn = uniCliShared.createTransformOn(uniMpCompiler.transformOn, { match: (name, node, context) => { if (name === ‘getphonenumber’ || name === ‘getuserextendinfo’) return true; if (name === ‘input’ && (node.tag === ‘input’ || node.tag === ‘textarea’)) { return true; } return uniCliShared.matchTransformOn(name, node, context); }, });

更多关于uni-app中button编译open-type="getUserExtendInfo"时有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 中,button 组件的 open-type 属性用于指定按钮的开放能力。目前,uni-app 支持的 open-type 值包括:

  • getUserInfo
  • contact
  • share
  • getPhoneNumber
  • launchApp
  • openSetting
  • feedback
  • getAuthorize
  • lifestyle
  • getRealnameAuthInfo

getUserExtendInfo 并不是 uni-app 中官方支持的 open-type 值。如果你尝试使用 open-type="getUserExtendInfo",可能会导致编译错误或运行时错误。

解决方案

如果你需要使用 getUserExtendInfo,可能需要检查以下几点:

  1. 确认需求:确认你是否真的需要使用 getUserExtendInfo,或者是否有其他替代的 open-type 值可以满足你的需求。

  2. 自定义实现:如果 uni-app 不支持 getUserExtendInfo,你可以考虑通过其他方式实现类似的功能,比如通过调用微信小程序的原生 API 或其他第三方插件。

  3. 检查文档:查看 uni-app 的官方文档和微信小程序的官方文档,确认是否有相关的支持或更新。

  4. 社区支持:如果你认为这是一个重要的功能,可以在 uni-app 的社区或 GitHub 仓库中提出需求,看看是否有其他开发者有类似的需求,或者是否有官方的支持计划。

示例代码

如果你需要使用 getUserInfo,可以参考以下代码:

<template>
  <view>
    <button open-type="getUserInfo" @getuserinfo="onGetUserInfo">获取用户信息</button>
  </view>
</template>

<script>
export default {
  methods: {
    onGetUserInfo(e) {
      console.log('用户信息:', e.detail.userInfo);
      // 处理用户信息
    }
  }
}
</script>
回到顶部