帖子
帖子
用户
博客
课程
显示全部楼层
36
帖子
2
勋章
409
Y币

[插件开发] UZModuleContent apploader不能正常返回

[复制链接]
发表于 2022-11-24 11:33:31
本帖最后由 强app 于 2022-11-24 15:23 编辑

安卓自定义模块开发,接入一个活体检测的sdk


使用 content 返回数据 android studio 都正常

但是在apploader 中最终的 content 返回不回来


        bulider.setLicence(licence)
                .setFrontLiveFace(new FrontLiveCallback() {
                    @Override
                    public void onFrontLivessFinished(final byte[] bestface, final String bestInfo, final byte[] nextface,
                                                      final String nextInfo, final byte[] clipedBestface, final boolean isLive) {
                        if (bestface != null && bestInfo != null && !TextUtils.isEmpty(bestInfo)
                                && nextface != null && nextInfo != null && !TextUtils.isEmpty(nextInfo)) {
                            String imgBestBase64 = Base64Util.encode(bestface);
                            String imgNextBase64 = Base64Util.encode(nextface);String strFaceInfo = imgBestBase64 + "," + bestInfo + "_" + imgNextBase64 + "," + nextInfo;
if (isLive) {HttpManager.cwFaceSerLivess(faceserver+"&ignore=", "user", "12345", strFaceInfo, new HttpManager.DataCallBack() {
                                    @Override
                                    public void requestFailure(String errorMsg) {

                                        //关闭结果页面需调用,不能注释掉这行代码
                                        bulider.setFaceLiveResult(APICloudWalkModule.this.context(), Bulider.FACE_LIVE_FAIL, Bulider.FACE_LIVE_FAIL);

                                    }

                                    @Override
                                    public void requestSucess(JSONObject jb) {
                                        int extInfo = jb.optInt("extInfo");

                                        //后端检测成功后存储最佳人脸信息, 根据需要存图
                                        if (extInfo == 1) {

                                            face_back("请求服务器返回成功",0,moduleContext);

                                        }else{
                                            face_back("请求服务器返回失败",extInfo,moduleContext);

                                        }

                                        //关闭结果页面需调用,不能注释掉这行代码
                                        bulider.setFaceLiveResult(APICloudWalkModule.this.context(), Bulider
                                                .FACE_LIVE_PASS, extInfo);

                                    }
                                });
                            } else {
                                bulider.setFaceLiveResult(APICloudWalkModule.this.context(), Bulider.FACE_LIVE_FAIL, Bulider.FACE_LIVE_FAIL);
                            }


                        } else {
                            bulider.setFaceLiveResult(APICloudWalkModule.this.context(), Bulider.FACE_LIVE_FAIL, Bulider.FACE_LIVE_FAIL);
                        }
                    }
                }).isServerLive(true)//后端活体的总开关
                .isFrontHack(false)
                .isResultPage(true)//活体检测页面开关
                .setPublicFilePath(publicFilePath)
                .setLives(liveList, liveCount, true, false/*不返回动作图*/, liveLevel/*废弃*/).setLiveTime(liveTime)
                .setFrontDetectCallback(new FrontDetectCallback(){

                    @Override
                    public void onLivenessSuccess(byte[] bytes, byte[] bytes1, byte[] bytes2, String s) {
//                        face_back(Base64Util.encode(bytes),moduleContext);

                        face_back("防攻击检测成功",0,moduleContext);  //这段始终在apploader返回不回来
                    }

                    @Override
                    public void onLivenessFail(int i) {

                        face_back("检测失败",i,moduleContext);
                    }

                    @Override
                    public void onLivenessCancel() {

                        face_back("主动取消",998,moduleContext);
                    }
                })
                .setInitializeCallBack(new InitializeCallBack(){

                    @Override
                    public void onInitializeSuccess() {

                        face_back("初始化成功",0,moduleContext);
                    }

                    @Override
                    public void onInitializeFail(Throwable throwable) {
                        face_back("初始化失败,"+throwable.getMessage(),999,moduleContext);
                        bulider.setFaceResult(APICloudWalkModule.this.context(),Bulider.FACE_LIVE_FAIL, 0d, "", "");
                    }
                })
                .startActivity((Activity) this.context(), LiveStartActivity.class);
36
帖子
2
勋章
409
Y币
本帖最后由 强app 于 2022-11-24 15:22 编辑

logcat 中是 打印了的

2022-11-24 15:10:40.057 24400-24400/? D/WebView: evaluateJavascript=if(window._api$cb_){_api$cb_.on('3','',JSON.parse('{\"code\":0,\"msg\":\"防攻击检测成功\"}'),false);}

奇怪的是 H5那边没收到
您好,这边转发给模块开发看下
0
帖子
1
勋章
2524
Y币
你在onLivenessFail这些回调里加些日志看看知道到face_back没有
36
帖子
2
勋章
409
Y币
本帖最后由 强app 于 2022-11-24 16:15 编辑

没有走onLivenessFail啊

走的是onLivenessSuccess

logcat 中都打印了

2022-11-24 15:10:40.057 24400-24400/? D/WebView: evaluateJavascript=if(window._api$cb_){_api$cb_.on('3','',JSON.parse('{\"code\":0,\"msg\":\"防攻击检测成功\"}'),false);}

36
帖子
2
勋章
409
Y币
本帖最后由 强app 于 2022-11-24 17:01 编辑

setInitializeCallBack  、setFrontDetectCallback  中的方法 H5是都接不到
36
帖子
2
勋章
409
Y币
是不是因为 我的自定义模块class,
调用了sdk,
sdk他们打开了一个新的activity,
就和H5断开了呢
强app · 2022-11-24 17:03是不是因为 我的自定义模块class,
调用了sdk,
sdk他们打开了一个新的activity,

你是看的config么  用alert试试
36
帖子
2
勋章
409
Y币
alert是可以的 ,绝了
您需要登录后才可以回帖 登录

本版积分规则