概述及资源
本文是 GeeGlance iOS SDK 的部署文档,用于指导 GeeGlance iOS SDK 的集成,读者需具有一定 iOS 编程知识基础。
1、环境需求
条目 | 资源 |
---|---|
开发目标 | iOS 9+ |
开发环境 | Xcode 11+ |
系统依赖 | libiconv.2.4.0.tbd |
SDK 体积 | 22M(支持 bitcode) |
包增量 | 0.5M |
2、相关开发资料
条目 | 资源 |
---|---|
SDK 当前版本 | 1.0.0 |
准备工作
1、创建应用
登录极验后台创建应用获取商户 ID (merchantId),并在后台配置 bundleId。
2、快速体验 Demo
iOS 压缩包附带的 GeeGlanceDemo 文件夹中是极验的示例工程,使用 Xcode 打开示例工程,修改 BundleID 和 merchantId 为创建应用时绑定的 BundleID 和 merchantId。
- 修改 bundleId
修改
AppDelegate.m
文件中的registerWithMerchantId:
方法的参数 merchantId// 修改 merchantId
[GeeGlanceManager registerWithMerchantId:@"4c73730ddc83ebc6f9b0af0d0e350590"];
3、开发环境搭建
3.1、手动集成
将下载获取的 GeeGlanceSDK.framework
以及 GeeGlanceResource.bundle
共 2 个文件添加到工程中, 确保 Copy items if needed
已被勾选。
添加完后, 以 Linked Frameworks and Libraries
方式导入 framework。
在拖入 GeeGlanceSDK.framework
到工程后, 请检查其是否被添加到 PROJECT
-> Build Phases
-> Linked Frameworks and Libraries
, 以确保正常编译。
添加系统依赖库 libiconv.2.4.0.tbd
。
3.2、工程配置
针对静态库中的
Category
, 需要在对应 target 的Build Settings
->Other Linker Flags
添加-ObjC
编译选项。
SDK 接入
1、调用逻辑
registerWithMerchantId:
初始化 SDK 并配置merchantId
(建议在应用启动时调用该方法)- 构造
GeeGlanceConfig
的实例,配置sceneKey
和sceneType
matchesInContent:withConfig:completionHandler:
开始内容识别
2、接口介绍
2.1、初始化
方法原型
/** |
参数描述
参数 | 是否必填 | 类型 | 说明 |
---|---|---|---|
merchantId | 是 | NSString | merchantId |
接口作用
传入 merchantId,并开始初始化,预加载内容识别需要的资源
示例代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
2.2、匹配敏感词
方法原型
/** |
参数描述
参数 | 是否必填 | 类型 | 说明 |
---|---|---|---|
content | 是 | NSString | 需匹配敏感词的内容 |
config | 否 | GeeGlanceConfig | 场景配置 |
completionHandler | 是 | block | 匹配结果回调 |
GeeGlanceMatchResult
参数 | 说明 |
---|---|
startLocation | 敏感词在原文中的起始位置 |
endLocation | 敏感词在原文中的结束位置 |
range | 敏感词在原文中的 NSRange |
resultCategory | 敏感词类别 |
riskLevel | 敏感词等级 |
sensitiveWord | 敏感词 |
originContent
参数 | 说明 |
---|---|
originContent | 被匹配的原文 |
GeeGlanceExtraInfo
参数 | 说明 |
---|---|
taskId | 此次匹配的任务号 |
merchantId | 商户号 |
clientType | 客户端类型 |
sdkVersion | SDK 版本号 |
systemVersion | iOS 系统版本号 |
bundleShortVersion | bundleShortVersion |
bundleVersion | bundleVersion |
deviceModel | 机型 |
error | 匹配出错时返回,正常匹配时为 nil |
匹配结果具体示例如下所示:
匹配结果数组:
匹配原文:
匹配的额外信息:
接口作用
匹配输入内容中的敏感词
使用场景
匹配前,先构造 GeeGlanceConfig
的实例,传入 sceneKey
和 sceneType
,比如,若当前为评论场景,可将 sceneKey
设置为 comment
,sceneType
设置为 GeeGlanceSceneTypeMedium
,若当前为创建昵称场景,可将 sceneKey
设置为 nickname
,sceneType
设置为 GeeGlanceSceneTypeSuperShort
,在用户即将提交输入内容时,调用该接口进行识别
示例代码
GeeGlanceConfig *config = [[GeeGlanceConfig alloc] initWithSceneKey:@"comment" sceneType:GeeGlanceSceneTypeMedium]; |
其他接口说明
1、设置使用场景 key
方法原型
/** |
参数描述
参数 | 是否必填 | 类型 | 说明 |
---|---|---|---|
sceneKey | 否 | NSString | sceneKey |
接口作用
设置使用场景 key
使用场景
推荐在只有单个识别场景时使用该方法设置场景 key,后续通过 matchesInContent:completionHandler:
方法进行内容识别,对于有多个识别场景的情况,可不用调用此方法,直接使用 matchesInContent:withConfig:completionHandler:
方法通过 config 传入场景 key 即可
示例代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
2、设置使用场景类型
方法原型
/** |
参数描述
参数 | 是否必填 | 类型 | 说明 |
---|---|---|---|
sceneKey | 否 | GeeGlanceSceneType | sceneType |
接口作用
设置使用场景类型
使用场景
推荐在只有单个识别场景时使用该方法设置场景 type,后续通过 matchesInContent:completionHandler:
方法进行内容识别,对于有多个识别场景的情况,可不用调用此方法,直接使用 matchesInContent:withConfig:completionHandler:
方法通过 config 传入场景 type 即可
示例代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
3、匹配敏感词
方法原型
/** |
参数描述
参数 | 是否必填 | 类型 | 说明 |
---|---|---|---|
content | 是 | NSString | 需匹配敏感词的内容 |
completionHandler | 是 | block | 匹配结果回调 |
接口作用
用于单识别场景匹配输入内容中的敏感词
使用场景
对于单识别场景,并已通过 setSceneKey:
和 setSceneType:
方法设置过 key 和 type,建议使用该方法进行内容识别,在用户即将提交输入内容时,调用该接口进行识别
示例代码
[GeeGlanceManager matchesInContent:self.text completionHandler:^(NSMutableArray<GeeGlanceMatchResult *> * _Nonnull results, NSString * _Nonnull originContent, GeeGlanceExtraInfo * _Nonnull extraInfo) { |
4、设置日志开关
设置日志开关,建议开发调试时打开日志,上线时关闭日志
/** |
5、设置用户 id
设置用户 id
/** |
6、获取 SDK 版本号
获取 SDK 版本号
/** |