考慮到網上還沒有rn極驗的集成文章,前倆天公司業務正好集成了一下android和ios的sdk,平時時間少沒時間寫,今天簡單介紹一下集成方案,要是時間允許的話,我搞一個極驗的rn版sdk,給大家分享一下😄
我們先聊android集成那些事
1.首先我們需要匯入geetest的sdk,這里你可以選擇遠程依賴集成,也可以選擇手動下載sdk,把aar放進libs檔案夾或者別的檔案夾,然后gradle去決議編譯
implementation 'com.geetest.sensebot:sensebot:4.3.4.6'
極驗_android_sdk 點擊下載
具體的在sdk檔案里可以看一下
2.sdk完成載入后,我們就可以去新建一個reactnative的module,主要暴露的3個方法,分別是 init open release 3個方法,外加一個發送回呼給rn,
截圖如下:

這個方法是極驗的初始化方法,構造中GT3ConfigBean這個類是配置極驗的,還可以配置多語言呢

這里需要注意一下,android中極驗打開必須運行在主執行緒, 因為rn默認在module子執行緒,所以這里需要切換執行緒,

這里需要注意一下,服務端集成后會有服務端的介面,請求后會回傳3個東西 分別是:
{
"success" : 1,
"challenge" : "4a5cef77243baa51b2090f7258bf1368",
"gt" : "019924a82c70bb123aae90d483087f94"
}
setApiJson 設定的就是這個東西,設定后呼叫getGeetest()方法繼續驗證操作.
這時候就會看到極驗的dialog了
極驗一共有2層驗證,api1驗證和API2驗證,我這里專案沒有做第二層驗證,所以在onDialogResult回呼中 拿到結果后就呼叫gt3GeetestUtils.showSuccessDialog()結束了極驗.
截圖如下:

呼叫成功方法后,會進入成功回呼onSuccess
在onsuccess回呼里把結果發送給rn就ok了

最后還要暴露一個釋放物件的一個方法,android里使用后要及時回收,防止泄漏記憶體

到這里android的集成就完結了,
最后我們在簡單看看ios的,
大部分是相同的思路,ios我不是太懂,也是很懵的搞出來了,挺艱難的,截圖看看主要的代碼塊吧
我這里用的pod下載的sdk
pod 'GT3Captcha-iOS'
然后需要在實作檔案中初始化
- (GT3CaptchaManager *)manager {
if (!_manager) {
_manager = [[GT3CaptchaManager alloc] initWithAPI1:nil API2:nil timeout:3000];
_manager.delegate = self;
}
return _manager;
}
- (instancetype)initWithFrame:(CGRect)frame {
if (self) {
[self.manager registerCaptcha:nil];
}
return self;
}

然后是暴露open方法,

這個是api1成功后的回呼 code=1就代表api1驗證成功了,我這里吧api2禁用了,用不到

然后發送給rn,這里就集成ios完畢了,oc我就不做太多解釋了,說不好,我也是搞好久 不太懂😄,具體的大家可以多看看檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350992.html
標籤:其他
