李棣同學
李棣同學
  • 发布:2025-12-24 17:46
  • 更新:2025-12-26 16:32
  • 阅读:101

【报Bug】一键登录鸿蒙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传入参数错误

2025-12-24 17:46 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该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 生成,仅供参考
李棣同學

李棣同學 (作者)

已经预登录,并且拿到了脱敏的手机号,并且安卓和iOS都正常,只有鸿蒙next报错,麻烦官方查一下什么情况

李棣同學

李棣同學 (作者)

<view class="items-center">  
                    <text class="mt-12 text-[24px] text-[#1b1d33]" id="number-text">{{  
                        oneClickInfo?.number  
                    }}</text>  
                    <text class="mt-4 text-[#8d8e99]" id="slogan-text">{{  
                        oneClickInfo?.slogan  
                    }}</text>  
                    <button  
                        id="login-button"  
                        class="w-full mt-[48px] text-white bg-[#006aff] rounded-[100px]"  
                        @tap="login"  
                    >  
                        本机号码一键登录  
                    </button>  
                </view>  
                <view class="flex-row mt-4">  
                    <checkbox-group @change="onPrivacyChange">  
                        <checkbox  
                            id="privacy-checkbox"  
                            class="privacy-checkbox"  
                            :checked="checked"  
                            value="1"  
                        ></checkbox>  
                    </checkbox-group>  
                    <view class="flex-1 flex-row items-center flex-wrap">  
                        <text class="text-[14px] text-[#8d8e99]" @tap="checked = !checked"  
                            >我已阅读并同意</text  
                        >  
                        <text class="text-[14px] text-[#006aff]" id="privacy-text" @tap="toProtocol"  
                            >《{{ oneClickInfo?.privacyName }}》</text  
                        >  
                        <text class="text-[14px] text-[#8d8e99]">和</text>  
                        <text class="text-[14px] text-[#006aff]" @tap="toPrivacyPolicy"  
                            >《隐私政策》</text  
                        >  
                        <text class="text-[14px] text-[#8d8e99]">以及</text>  
                        <text class="text-[14px] text-[#006aff]" @tap="toUserProtocol"  
                            >《用户协议》</text  
                        >  
                    </view>  
                </view>
李棣同學

李棣同學 (作者)

const preLogin = () => {  
    uni.getUniVerifyManager().preLogin({  
        success: (res) => {  
            oneClickInfo.value = res;  
        },  
        fail: (err) => {  
            toMLogin();  
            console.error("pre login fail => " + JSON.stringify(err));  
        }  
    });  
};
DCloud_UNI_LXH

DCloud_UNI_LXH

下载这里的 har 包 放到 /项目根目录/harmony-configs/libs 下,然后重新运行试试看

  • 李棣同學 (作者)

    包放进去之后,调试环境竟然也可以用了,这样直接打包上线就好了吗?

    2025-12-26 16:29

李棣同學

李棣同學 (作者)

刚刚还在聊这个问题

要回复问题请先登录注册