接口說明
本文介紹圖形認(rèn)證Android客戶端接入時所需的接口信息。
工具類接口
獲取AlicomCaptcha4Client工具類對象
非單例實現(xiàn),通過getClient()
獲取的AlicomCaptcha4Client
對象需要保存,以方便在onDestory
或其他生命周期使用。
public static AlicomCaptcha4Client getClient(Context context)
參數(shù) | 類型 | 說明 |
context | Context | 上下文 |
使用默認(rèn)配置初始化
調(diào)用init()
方法后執(zhí)行了加載驗證碼操作,若在onResume()
生命周期之前調(diào)用,就會預(yù)加載驗證碼;當(dāng)執(zhí)行verifyWithCaptcha()
展示驗證碼時,就會展示驗證碼。
public AlicomCaptcha4Client init(String captchaId)
參數(shù) | 類型 | 說明 |
captchaId | String | 驗證ID,請傳入在控制臺創(chuàng)建認(rèn)證方案后生成的 |
使用自定義配置初始化
public AlicomCaptcha4Client init(String captchaId, AlicomCaptcha4Config config)
參數(shù) | 類型 | 說明 |
captchaId | String | 驗證ID,請傳入在控制臺創(chuàng)建認(rèn)證方案后生成的 |
config | AlicomCaptcha4Config | 參數(shù)配置對象 |
添加驗證結(jié)果監(jiān)聽的對象
添加驗證結(jié)果監(jiān)聽的對象,當(dāng)驗證碼加載成功,用戶解答驗證碼結(jié)果回調(diào)。
public AlicomCaptcha AlicomCaptcha4Client
addOnSuccessListener(AlicomCaptcha4Client.OnSuccessListener response)
參數(shù) | 類型 | 說明 |
response | AlicomCaptcha4Client.OnSuccessListener | 驗證結(jié)果監(jiān)聽的對象 |
添加加載驗證前端成功監(jiān)聽的對象
添加加載驗證前端成功的監(jiān)聽的對象,驗證前端加載成功后回調(diào)。預(yù)加載已完成的情況下,調(diào)用verifyWithCaptcha
后立即回調(diào)。
public AlicomCaptcha4Client
addOnWebViewShowListener(AlicomCaptcha4Client.OnWebViewShowListener listener)
參數(shù) | 類型 | 說明 |
listener | AlicomCaptcha4Client.OnWebViewShowListener | 驗證前端加載成功監(jiān)聽的對象 |
添加加載驗證碼失敗監(jiān)聽的對象
添加加載驗證碼失敗監(jiān)聽的對象,加載驗證碼的過程中報錯。
public AlicomCaptcha AlicomCaptcha4Client
addOnFailureListener(AlicomCaptcha4Client.OnFailureListener listener)
參數(shù) | 類型 | 說明 |
listener | AlicomCaptcha4Client.OnFailureListener | 加載驗證碼失敗監(jiān)聽的對象 |
開啟驗證流程
開啟驗證流程,加載驗證碼。調(diào)用verifyWithCaptcha()
之前需要先調(diào)用init()
、addOnSuccessListener()
、addOnFailureListener
否則可能報錯。
public AlicomCaptcha AlicomCaptcha4Client verifyWithCaptcha()
取消驗證
取消驗證,關(guān)閉驗證窗口。調(diào)用verifyWithCaptcha()
之前需要先調(diào)用init()
、addOnSuccessListener()
、addOnFailureListener
否則可能報錯。
public void cancel()
設(shè)置開啟/關(guān)閉打印日志監(jiān)控
public void setLogEnable(boolean enable)
銷毀生命周期長的資源
該方法在用戶使用的驗證碼界面的onDestroy
生命周期中調(diào)用。
public AlicomCaptcha void destroy()
獲取版本號
返回的版本號,類型為String。
public static String getVersion()
檢測是否支持系統(tǒng)WebView
public static Pair<Boolean, String> isSupportWebView(Context context)
參數(shù) | 類型 | 說明 |
first | Boolean | 是否支持WebView,若不支持則可以走兜底邏輯 |
second | String | 加載WebView對象報錯說明 |
參數(shù)配置類接口
設(shè)置請求超時時間
public AlicomCaptcha Builder setTimeOut(int timeOut)
參數(shù) | 類型 | 說明 |
timeOut | int | 請求超時時間,單位:ms,默認(rèn)10000 |
設(shè)置WebView加載資源地址
默認(rèn)加載assets目錄的gt4-index*.html文件,沒有特殊需求無需設(shè)置此接口。
public AlicomCaptcha Builder setResourcePath(String html)
參數(shù) | 類型 | 說明 |
html | String | WebView加載地址 |
控制加載WebView語言
傳輸JS的設(shè)置語言,此接口僅控制加載WebView的語言, SDK的多語言跟隨當(dāng)前應(yīng)用。如果設(shè)置為null或未設(shè)置,則使用應(yīng)用默認(rèn)語言短碼傳輸給前端。
public AlicomCaptcha Builder setLanguage(String language)
參數(shù) | 類型 | 說明 |
language | String | 前端支持語言短碼 |
支持的語言及其語言短碼如下:
語言 | Language | 語言短碼 |
簡體中文 | Chinese(Simplified) | zho |
繁體中文(hk) | Chinese(Hong Kong) | zho-hk |
繁體中文(tw) | Chinese(Taiwan) | zho-tw |
美式英文 | English | eng |
英式英文 | English | eng-gb |
日語 | Japanese | jpn |
印尼 | Indonesian | ind |
韓語 | Korean | kor |
俄語 | Russian | rus |
阿拉伯語 | Arabic | ara |
西班牙語 | Spanish | spa |
法語 | French | fra |
德語 | German | deu |
維吾爾語 | Uyghur | udm |
巴西葡語 | Portuguese(Brazil) | pon |
歐洲葡語 | Portuguese(Europe) | por |
設(shè)置點擊灰色區(qū)域是否消失
public AlicomCaptcha Builder setCanceledOnTouchOutside(boolean canceledOnTouchOutside)
參數(shù) | 類型 | 說明 |
canceledOnTouchOutside | boolean | 設(shè)置點擊灰色區(qū)域是否消失。
|
設(shè)置是否是debug模式
public AlicomCaptcha Builder setDebug(boolean debug)
參數(shù) | 類型 | 說明 |
debug | boolean | 設(shè)置是否是debug模式。
|
設(shè)置WebView背景色
設(shè)置WebView
背景色,控制的是Android WebView
控件的背景色,和前端JS的背景色不同。
public AlicomCaptcha Builder setBackgroundColor(int backgroundColor)
參數(shù) | 類型 | 說明 |
backgroundColor | int | 顏色資源地址或 |
設(shè)置驗證碼對話框的主題樣式
public Builder setDialogStyle(String dialogStyle)
參數(shù) | 類型 | 說明 |
dialogStyle | String | 對話框的主題樣式名稱 |
默認(rèn)的主題樣式
<style name="gt4_captcha_dialog_style" parent="android:Theme.Dialog">
<!--Dialog的windowFrame框為無-->
<item name="android:windowFrame">@null</item>
<!--是否浮現(xiàn)在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--除去title-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<!--顯示區(qū)域以外是否使用黑色半透明背景-->
<item name="android:backgroundDimEnabled">true</item>
<!--設(shè)置dialog的背景-->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:padding">0dp</item>
</style>
設(shè)置驗證窗口顯示的監(jiān)聽回調(diào)
public void setDialogShowListener(AlicomCaptcha4Client.OnDialogShowListener dialogShowListener)
參數(shù) | 類型 | 說明 |
dialogShowListener | AlicomCaptcha4Client.OnDialogShowListener | 驗證窗口顯示監(jiān)聽的對象 |
額外參數(shù)配置
public Builder setParams(Map<String, Object> params)
參數(shù) | 類型 | 說明 |
params | JSONObject | 額外參數(shù)配置,當(dāng)前參數(shù)傳給JS |
支持的鍵值如下:
值 | 類型 | 說明 |
displayMode | int | 主題樣式。取值:
|
protocol | String | 協(xié)議頭,支持 |
bgColor | String | 驗證背景蒙版顏色,遵循CSS規(guī)則,注意最后兩位為透明度。默認(rèn)值: |
loading | String | 自定義loading,WebView加載HTML的loading資源相對路徑,空字符串表示取消loading效果。 |
rem | float | 設(shè)置驗證碼整體的縮放比例。 |
hideBar | JSONArray | 隱藏后續(xù)驗證界面的關(guān)閉按鈕、刷新按鈕 。 |
nextWidth | String | 驗證碼彈窗的寬度,需要攜帶單位,如"300px"。 |
riskType | String | 當(dāng)服務(wù)端配置了結(jié)合風(fēng)控融合,此字段可指定驗證形式。 重要 由于目前暫未提供風(fēng)控融合模式,此參數(shù)調(diào)用不會生效。 |
hideSuccess | boolean | 隱藏驗證成功彈窗。 |
代碼示例
Map<String, Object> params = new HashMap<>();
params.put("displayMode", 0);
params.put("protocol", "https://");
params.put("bgColor", "#CC0000FF");
params.put("loading", "./loading_test.gif");
params.put("rem", 0.6);
JSONArray hideBar = new JSONArray()
.put("close")
.put("refresh");
params.put("hideBar", hideBar);
params.put("nextWidth", "300px");
params.put("hideSuccess", true);
AlicomCaptcha4Config.Builder builder = new AlicomCaptcha4Config.Builder()
.setParams(params);
構(gòu)造AlicomCaptcha4Config對象
構(gòu)造AlicomCaptcha4Config對象,傳輸給init()
接口使用。
public AlicomCaptcha AlicomCaptcha4Config build()
回調(diào)監(jiān)聽類接口
驗證接口回調(diào)
void onSuccess(Boolean status, String response)
參數(shù) | 類型 | 說明 |
status | Boolean | 用戶操作驗證結(jié)果
|
response | String | 用戶操作驗證成功,需要獲取response數(shù)據(jù)到服務(wù)端驗證 |
驗證成功示例
{
"lot_number":"b150e61198924eff9eaae121e9b67aa8",
"pass_token":"6fcfba4c35cb57b873c99c5b3b02089c58a26244c18f7706aaa1e87aed3aa8f4",
"gen_time":"1622020720",
"captcha_output":"Tu6rW0dRNO0NLxMKftwdH00G5whF5HHddthoXSEA1G4="
}
驗證失敗示例
{
"captchaId":"647f5ed2ed8acb4be36784e01556bb71",
"captchaType":"slide",
"challenge":"95ed53b4-95c6-4c6b-9aac-769b29ef74a0"
}
加載失敗回調(diào)
void onFailure(String error)
參數(shù) | 類型 | 說明 |
error | String | 驗證加載失敗描述,包括用戶主動取消 |
加載失敗示例
{
"code":"-14460",
"msg":"驗證會話已取消",
"desc":
{"description":"User cancelled'Captcha'"}
}
驗證前端加載成功
在驗證前端加載成功后回調(diào)。預(yù)加載已完成的情況下,調(diào)用verifyWithCaptcha
后立即回調(diào)。
void onWebViewShow()
驗證窗口在顯示前回調(diào)
void actionBeforeDialogShow(Dialog dialog)
參數(shù) | 類型 | 說明 |
dialog | Dialog | 驗證窗口實例 |
驗證窗口在顯示后回調(diào)
可在此處對系統(tǒng)樣式進(jìn)行改變,例如:隱藏導(dǎo)航欄、隱藏狀態(tài)欄等。
void actionAfterDialogShow(Dialog dialog)
參數(shù) | 類型 | 說明 |
dialog | Dialog | 驗證窗口實例 |
驗證窗口在改變焦點時回調(diào)
void onDialogFocusChanged(Dialog dialog, boolean hasFocus)
參數(shù) | 類型 | 說明 |
dialog | Dialog | 驗證窗口實例 |
hasFocus | boolean | 是否有焦點 |