> >

移动端Android常见问题解答

Q:通过Api方法指定语言但是不生效?
A:不同版本可配置语言数不同,请先确认当前版本是否支持所指定的语言,如确认无误,请确认接入的SDK是否为从极验后台所获取的最新版本并正确使用本地依赖方式,不支持远程依赖。

Q:是否可以移除或者自定义loading?
A:支持,但是当移除loading后遇到网络较差时候,无任何指示器,可能会影响体验。自定义loading方法如下:

  1. setParams 中指定 loading 资源的路径。

    Map<String, Object> params = new HashMap<>();
    params.put("loading", "./loading.gif");
    GTCaptcha4Config builder = new GTCaptcha4Config.Builder()
    .setParams(params);
  2. 关闭sdk loading,以及自行实现。

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState){
    super.onViewCreated(view, savedInstanceState);
    Map<String, Object> params = new HashMap<>();
    params.put("loading", ""); // laoding 字段传空关闭loading
    params.put("bgColor", "#00000080"); // 设置前端加载的蒙层,CSS颜色值
    GTCaptcha4Config config = new GTCaptcha4Config.Builder()
    .setParams(params)
    .setDialogStyle("demo_dialog_style") // 自定义验证码对话框的主题,去除原生蒙层,防止遮挡loading
    .build();
    gtCaptcha4Client = GTCaptcha4Client.getClient(activity)
    .init("your captcha_id", config);
    }

    public void click() {
    showLoading(); // 自行实现loading
    gtCaptcha4Client.addOnSuccessListener(new GTCaptcha4Client.OnSuccessListener {
    @Override
    public void onSuccess(boolean status, String response) {
    if (status) {
    // TODO 开启二次验证
    } else {
    // TODO 用户答案验证错误
    }
    }
    })
    .addOnFailureListener(new GTCaptcha4Client.OnFailureListener {
    @Override
    public void onFailure(String error) {
    }
    })
    .addOnWebViewShowListener(new GTCaptcha4Client.OnWebViewShowListener{
    @Override
    public void onWebViewShow() {
    dismissLoading(); // 关闭自行实现的 loading
    }
    })
    .verifyWithCaptcha();
    }
<style name="demo_dialog_style" parent="android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<!--显示区域以外是否使用黑色半透明背景-->
<!-- 改为 false 去除蒙层 -->
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:padding">0dp</item>
</style>