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
预期结果:
- 期望触发@getuserextendinfo回调
实际结果:
- 没有触发
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
感谢反馈,问题已确认,会再未来的版本中修复这个问题,可暂时通过替换文件的方式解决
如果是用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 值包括:
getUserInfocontactsharegetPhoneNumberlaunchAppopenSettingfeedbackgetAuthorizelifestylegetRealnameAuthInfo
getUserExtendInfo 并不是 uni-app 中官方支持的 open-type 值。如果你尝试使用 open-type="getUserExtendInfo",可能会导致编译错误或运行时错误。
解决方案
如果你需要使用 getUserExtendInfo,可能需要检查以下几点:
-
确认需求:确认你是否真的需要使用
getUserExtendInfo,或者是否有其他替代的open-type值可以满足你的需求。 -
自定义实现:如果
uni-app不支持getUserExtendInfo,你可以考虑通过其他方式实现类似的功能,比如通过调用微信小程序的原生 API 或其他第三方插件。 -
检查文档:查看
uni-app的官方文档和微信小程序的官方文档,确认是否有相关的支持或更新。 -
社区支持:如果你认为这是一个重要的功能,可以在
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>

