iOS SDK 文档
最近更新:2020年7月1日
集成
目前只支持手动导入 SDK 并管理依赖:
Alamofire网络库,CryptoSwift数据加解密库(如果你的项目中已经包括就不需要导入)
target 'SDKDemo' do
use_frameworks!
pod 'Alamofire'
pod 'CryptoSwift'
end
初始化
在使用 SDK 之前必须先初始化
AdaInitializer.initWithAppParameters(appId: "", appSecret: "");
获取SDK单例对象
let adaClient = AdaInitializer.adaDefault;
会话
发起会话
adaClient.registerApp(mobile: String,userInfo: [String:Any]? = nil
,finishedSuccessCallback: { (s) in
}, finishedFailureCallback: { (f) in
})
回复会话,获取下一条会话
httpClient.dialog(qid, aid, input)
qid 为问题 id
aid 为回答 id
input 代表用户输入的信息
会话数据结构
参数名 | 参数描述 | 类型 | 是否必有 |
---|---|---|---|
qid | 问题id | String | 是 |
type | 问题类型 | Int | 是 |
question | 问题描述 | String | 否 |
answers | 问题选项 | ArrayAnswer | 是 |
Answer 类型
参数名 | 参数描述 | 类型 | 是否必有 |
---|---|---|---|
aid | 回答id | String | 是 |
type | 回答类型 | Int | 是 |
label | 回答的文案 | String | 否 |
问题 type
type | 描述 | 处理方式 |
---|---|---|
0 | 会话 | 回复问题,获取下一个会话 |
1 | 重新开始评估 | 重新开始评估 |
回答 type
type | 描述 | 处理方式 |
---|---|---|
1 | 单选 | 展示一个按钮,文案为 label<br />点击后调用会话方法,传入 aid 字段 |
2 | 昵称 | 展示一个文本框,提示内容为 label<br />可输入的最大长度为 maxLength<br />inputRequired 字段表示是否必填<br />提交后调用会话方法,传入 aid、input 字段 |
3 | 弹框 | 展示一个按钮,文案为 label<br />点击后弹出对话框,展示 modalTitle、modalText<br />如果有图片,图片信息在 mediaImages 数组里 |
4 | 日期选择 | 年月日选择,提交按钮展示 label<br />最小日期为 minimumDate<br />最大日期为 maximumDate<br />inputRequired 字段表示是否必填<br />提交后调用会话方法,传入 aid、input 字段<br />日期格式为 yyyy/MM/dd |
5 | 症状选择 | 展示症状搜索框<br />选择症状后调用会话方法,传入 aid、input 字段<br />input 为症状 id<br />提供了 profileKey 字段,用于获取档案性别、生日信息,实现精准搜索病症 |
6 | 打开报告按钮 | 展示一个按钮,文案为 label<br />提供 adaCaseKey 字段,用于获取报告<br />点击后打开报告,返回后调用会话方法,传入 aid |
7 | 意见反馈 | 展示一个文本输入区域<br />inputRequired 字段表示是否必填<br />提交后调用 dialog 接口,传入 aid、input 字段 |
8 | 症状追踪等级滑块 | 展示一个滑块,可选范围为 1~10 的整数<br />提交后调用会话方法,传入 aid、input 字段 |
9 | 腹部区域选择 | 展示一个人体腹部图,圈出腹部七个区域:<br />above -> 在胃上方的区域<br />center -> 在肚挤附近<br />lowerLeft -> 左下方<br /> lowerRight -> 右下方<br />pelvic -> 在盆骨<br />upperLeft -> 左上方<br />upperRight -> 右上方<br />选择一个区域,点击确定后,调用会话方法,传递 aid、input 字段 |
MediaImage 类型
参数名 | 参数描述 | 类型 | 是否必有 |
---|---|---|---|
mediaUrlId | 图片 Base64 格式文件下载地址 | String | 是 |
title | 图片描述 | String | 是 |
urlSmall | 600px小图 | String | 是 |
urlMedium | 1100px中图 | String | 是 |
urlLarge | 1600px大图 | String | 是 |
copyrightInfo | 版权信息 | String | 是 |
会话回退
- 用于让服务器记录问诊状态,方便用户继续问诊
- 让服务器正确的判断用户的症状
- 每次只能回退一步
- 如果不能回退,返回相应错误码,提示用户
调用方式:
adaClient.undoClick()
获取报告列表
adaClient.reportList()
获取报告详情
adaClient.reportDetail(adaCaseKey)
症状搜索
adaClient.requestDialogSearch(query)
异常码
服务器端错误码段需要与客户端错误码端区分开,防止错误码重复
错误码表 | ||
---|---|---|
错误码 | 含义 | 解释 |
501 | 不能回退 | 调用 undo 接口时,如果不允许回退到此步,抛出此异常 |
502 | 输入字符串长度错误 | 输入的 input 超过 maxLength 规定的字数限制,抛出此异常 |
503 | 输入为空 | inputRequired 时,input 为 null 或者是空白字符串时,抛出此异常 |
506 | 日期范围异常 | 日期不在 minimumDate ~ maximumDate 之间,抛出此异常 |
507 | 病症 key 异常 | findingKey 异常,需要先搜索病症,再取病症相应的 key |
510 | 找不到 qid | 根据 qid,找不到缓存的 question 时,抛出此异常 |
511 | 找不到 aid | 根据 aid,找不到 question 对应的 answer 时,抛出此异常 |