1 Star 0 Fork 0

友验技术团队 / YoTest-iOS-SDK

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

YoTest-iOS-SDK 文档

CocoaPods Compatible

基于虚拟机保护、设备特征识别和操作行为识别的新一代智能验证码,具备智能评分、抗 Headless、模拟伪装、针对恶意设备自动提升验证难度等多项安全措施,帮助开发者减少恶意攻击导致的数字资产损失,强力护航业务安全。

仓库入口:

  

兼容性

  • iOS >= 10.0
  • Swift(若需要使用OC,可以自行添加桥接代码)

示例项目

你可以通过 XCode 13+ 打开本项目进行示例项目的预览和更改,具体文件请点击此处

安装

方法一,使用 xcframework(推荐)

下载 YoTest-iOS-SDK 最新 Tag 代码,将 YoTest-iOS-SDK/Product 文件夹下的 YoTestSDK.xcframework 以及 WebRTC.framework 拖到您的工程目录里,并将动态库设置成 Embed&Sign,操作如下所示:

show

方法二,使用 CocoaPods

在 Podfile 中添加pod 'YoTestSDK', '1.0.3'并执行 pod insall 进行安装。

自定义编译

若有自定义更改SDK的需求,你可将仓库克隆到本地,自行修改后执行编译脚本打包,操作如下:

> git clone https://gitee.com/yo-test-team/yo-test-i-os-sdk.git
> cd YoTest-iOS-SDK
> ./build.sh
show

编译好后,可以按照 安装 中的步骤,添加到工程项目中。

快速开始

第一步,克隆最新 Tag 代码,下载好后按照 安装 中的步骤添加到工程项目中(若您使用的是 CocoaPods,在 Podfile 中添加 pod 'YoTestSDK', '1.0.3'并执行 pod insall 进行安装):

> git clone -b 1.0.3 --depth=1 https://gitee.com/yo-test-team/yo-test-i-os-sdk.git

第二步,在 Appdelegate 中添加注册 SDK 的代码,如图所示:

YoTest.registSDK(auth: .init(
    accessId: "填写项目的accessId,可在友验后台查看"
)) { success in
    print("regist success: \(success)")
}
show

第三步,在给验证码页面添加 YoTestDelegate 并实现以下代理方法:

func onSuccess(args: [String : Any]) {
    print("onSuccess args: \(args)")
}
    
func onReady(args: [String : Any]) {
    print("onReady args: \(args)")
}
    
func onShow(args: [String : Any]) {
    print("onShow args: \(args)")
}
    
func onClose(args: [String : Any]) {
    print("onClose args: \(args)")
    captcha?.close()
}
    
func onError(args: [String : Any]) {
    print("onError args: \(args)")
}

第四步,在需要弹出验证的逻辑中加入声明属性 var captcha: YoTest? 代码:

if captcha == nil {
    do {
        captcha = try YoTest(with: self)
    } catch {
        print("error: \(error)")
    }
}
captcha?.verify()

API

YoTest类:

YoTest.Auth结构体:

YoTest.YTError:

YoTest.YTError.Code枚举:

YoTestDelegate协议:

YoTest:

public static func registSDK(auth: YoTest.Auth, on: @escaping (Bool) -> Void)

  • auth <YoTest.Auth>
  • on <@escaping (Bool) -> Void> 注册完成结果回调,成功返回true,否则返回false

注册SDK,需要在使用SDK进行人机验证前调用。可以添加到AppDelegate中,启动 App 时注册

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    ...    
    YoTest.logLevel = .verbose
    YoTest.registSDK(auth: .init(accessId: "在这里填写你的accessId")) { success in
        print("regist success: \(success)")
    }
    ...
    return true
}

public static func destroy()

销毁资源。不再使用SDK时,可以调用 YoTest.destroy() 方法来回收部分资源

/// 不再使用时
YoTest.destroy()

public init(with: YoTestDelegate?) throws

  • with <YoTestDelegate>
  • throws <YTError>

初始化 YoTest 实例对象。

do {
    let captcha = try YoTest(with: nil)
} catch {
    print("error: \(error)")
}

public func verify()

调起验证界面

do {
    let captcha = try YoTest(with: nil)
    captcha.verify()
} catch {
    print("error: \(error)")
}

public func close()

关闭验证界面。在 YoTestDelegate 的 onClose 方法回调时调用 close() 方法

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func onClose(args: [String : Any]) {
    captcha?.close()
}
...
}

public func cancel()

取消验证。

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func cancelVerify() {
    captcha?.cancel()
}
...

public weak var delegate: YoTestDelegate?

代理对象的获取和设置

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func setDelegate() {
	captcha?.delegate = self
}
...

public var autoShowLoading: Bool

是否显示 SDK 提供的 loading,默认为true,可以设置为false来关闭

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func dontShowLoading() {
	captcha?. autoShowLoading = false
}
...

public var autoShowToast: Bool

是否显示SDK提供的Toast,默认为true,可以设置为false来关闭

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func dontShowToast() {
	captcha?.autoShowToast = false
}
...

YoTest.Auth:

public init(accessId: String)

  • accessId <String> 友验后台申请的accessId

初始化 Auth 对象。

YoTest.Auth(accessId: "友验后台申请的 accessId")

YoTest.YTError.Code:

public let code: Code

错误码类型请参考如下表格:

错误码 描述
case requesting 正在请求授权
case unavailable 服务不可用,请检查accessId是否正确或网络是否正常

YoTestDelegate:

public func onReady(args: [String: Any])

验证已准备就绪的回调

class YourClass: NSObject, YoTestDelegate {
...
func onReady(args: [String: Any]) {
	// 在这里实现自己的代码逻辑
}
...

public func onSuccess(args: [String: Any])

验证成功时的回调

class YourClass: NSObject, YoTestDelegate {
...
func onReady(args: [String: Any]) {
	// 在这里实现自己的代码逻辑
}
...

public func onShow(args: [String: Any])

验证弹框即将显示的回调

class YourClass: NSObject, YoTestDelegate {
...
func onShow(args: [String: Any]) {
	// 在这里实现自己的代码逻辑
}
...

public func onError(args: [String: Any])

验证错误回调

class YourClass: NSObject, YoTestDelegate {
...
func onError(args: [String: Any]) {
	// 在这里实现自己的代码逻辑
}
...

public func onClose(args: [String: Any])

验证关闭时回调

class YourClass: NSObject, YoTestDelegate {
...
var captcha: YoTest?
...
func onClose(args: [String: Any]) {
    // 记得调用 captcha.close()
    captcha?.close()
    // 在这里实现自己的代码逻辑
}
...

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/yo-test-team/yo-test-i-os-sdk.git
git@gitee.com:yo-test-team/yo-test-i-os-sdk.git
yo-test-team
yo-test-i-os-sdk
YoTest-iOS-SDK
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891