reactNative集成极验(GeeTest)

考虑到网上还没有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我就不做太多解释了,说不好,我也是搞好久 不太懂😄,具体的大家可以多看看文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值