You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MFP8 Angular7+Cordova混合应用证书钉扎调用方法报then属性未定义错误

MFP 8 + Angular 7 + Cordova 证书钉扎报错解决方案

报错TypeError: Cannot read properties of undefined (reading 'then')的核心原因是WL.Client.pinTrustedCertificatePublicKey方法未返回Promise对象,可按以下步骤排查解决:

  • 修正证书存放路径拼写错误
    安卓原生项目的资源目录正确名称为assets,你当前填写的assests多了一个字符s,属于拼写错误,会导致MFP无法读取证书文件,部分版本插件找不到资源时会直接返回空值而非Promise对象。请将证书存放路径调整为assets/certificates/mycer.cer。
  • 调整API调用写法适配MFP插件版本
    多数旧版本MFP 8 Cordova插件的证书钉扎方法不支持Promise链式调用,需直接传入成功、失败回调作为入参,同时需确保调用时机在deviceready事件触发之后,修改后的代码示例如下:
    declare var WL: any;
    
    ngOnInit() {
        document.addEventListener('deviceready', () => {
            WL.Client.pinTrustedCertificatePublicKey(
                'mycer.cer',
                // 成功回调
                () => {
                    console.log("success pinning");
                },
                // 失败回调
                (error) => {
                    console.log("failure pinning", error);
                }
            );
        }, false);
    }
    
  • 验证MFP插件安装正确性
    运行命令cordova plugin list确认已安装cordova-plugin-mfp插件,且插件版本和你后端部署的MFP 8服务器大版本匹配。若版本不匹配,可卸载后重装对应版本插件:
    cordova plugin remove cordova-plugin-mfp
    cordova plugin add cordova-plugin-mfp@<对应版本号>
    
  • 验证证书格式合规
    MFP证书钉扎要求使用DER编码格式的CER证书,若你当前使用的是PEM格式证书,可通过openssl命令转换格式:
    openssl x509 -in mycer.pem -outform der -out mycer.cer
    

内容的提问来源于stack exchange,提问作者helloJT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:27:00