一键登录鸿蒙next报错-20100传入参数错误在uni-app中
一键登录鸿蒙next报错-20100传入参数错误在uni-app中
| 类别 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC版本号 | 26.1 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 4.87 |
| 手机系统 | HarmonyOS NEXT |
| 手机版本号 | HarmonyOS 6.0.0 |
| 手机厂商 | 华为 |
| 手机机型 | mate 60 pro |
| 页面类型 | nvue |
| Vue版本 | vue3 |
| 打包方式 | 离线 |
| 项目创建方式 | HBuilderX |
示例代码:
const login = () => {
const numberTextElement = uni.getElementById("number-text") as UniElement;
const sloganTextElement = uni.getElementById("slogan-text") as UniElement;
const loginButtonElement = uni.getElementById("login-button") as UniElement;
const privacyCheckBoxElement = uni.getElementById("privacy-checkbox") as UniElement;
const privacyTextElement = uni.getElementById("privacy-text") as UniElement;
uni.getUniVerifyManager().customLogin({
numberTextElement: numberTextElement,
sloganTextElement: sloganTextElement,
loginButtonElement: loginButtonElement,
privacyCheckBoxElement: privacyCheckBoxElement,
privacyTextElement: privacyTextElement,
success: (res) => {
takePhoneNumber(res.accessToken, res.openId);
},
fail: (error) => {
console.log(error);
}
});
};
bug描述:
uniapp x,一键登录,安卓和iOS都正常,鸿蒙next让@个推技术支持-恒锋 帮忙查了,说是20100传入参数错误
更多关于一键登录鸿蒙next报错-20100传入参数错误在uni-app中的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该bug反馈内容不完整,主要缺失复现步骤、预期结果和实际结果的具体描述,仅说明"鸿蒙next报错-20100传入参数错误"。代码示例虽展示了customLogin调用,但未提供对应UI元素的HTML结构,无法直接验证元素是否符合规范。分类信息较完整,包含HBuilderX 4.87、HarmonyOS 6.0.0等关键版本信息。
bug成立可能性高。根据uni-app-x一键登录规范,错误码20100(4001)表示"参数异常",常见原因包括:1) 未先调用预登录接口获取必要参数;2) UI元素未严格遵循五要素规范(如元素类型错误、未正确展示运营商协议等)。特别要注意鸿蒙Next平台对UI组件有特殊要求,必须使用指定组件实现,且不得动态变更元素。
建议用户:1) 确认是否已执行预登录流程;2) 检查UI元素是否完全符合文档要求;3) 参考官方示例重构代码。当前HBuilderX 4.87为正式版,但需注意uni-app-x的鸿蒙适配仍在迭代中。 内容为 AI 生成,仅供参考
更多关于一键登录鸿蒙next报错-20100传入参数错误在uni-app中的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
已经预登录,并且拿到了脱敏的手机号,并且安卓和iOS都正常,只有鸿蒙next报错,麻烦官方查一下什么情况
const preLogin = () => {
uni.getUniVerifyManager().preLogin({
success: (res) => {
oneClickInfo.value = res;
},
fail: (err) => {
toMLogin();
console.error("pre login fail => " + JSON.stringify(err));
}
});
};
下载这里的 har 包 放到 /项目根目录/harmony-configs/libs 下,然后重新运行试试看
包放进去之后,调试环境竟然也可以用了,这样直接打包上线就好了吗?
回复 李棣同學: 调试可以用了,但记得修改你后台配置的证书指纹,否则发布证书是调不通的
回复 DCloud_UNI_LXH: 上线了,线上版本也正常了
刚刚还在聊这个问题
这个个推也知道,运营商要求的,后续可能会改进在鸿蒙上的验证。现在可以先分别使用发布证书、调试证书创建两个应用来规避这个问题
错误码-20100通常表示调用一键登录API时传入的参数不符合规范。根据你的代码和鸿蒙Next环境,问题可能出在以下几个方面:
- 元素引用问题:
uni.getElementById获取的元素对象在鸿蒙Next环境下可能格式与预期不符。建议先检查这些元素是否成功获取:
console.log('元素检查:', {
numberTextElement,
sloganTextElement,
loginButtonElement,
privacyCheckBoxElement,
privacyTextElement
});
- 参数类型验证:确保所有传入的element参数都是有效的DOM元素引用。在鸿蒙Next中,可能需要确保这些元素已经完成渲染:
onReady(() => {
// 在页面就绪后再执行登录逻辑
});
- 鸿蒙Next适配问题:由于鸿蒙Next是较新的系统,可能需要检查uni-app原生插件是否已完全适配。可以尝试:
- 更新HBuilderX到最新版本
- 重新安装uni-app原生插件
- 检查manifest.json中是否已正确配置鸿蒙相关权限
- 备用方案:如果问题持续存在,可以考虑使用条件编译暂时绕过:
// #ifdef HARMONYOS_NEXT
// 鸿蒙Next特殊处理
// #else
uni.getUniVerifyManager().customLogin({
// 原有参数
});
// #endif

