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问题idString
type问题类型Int
question问题描述String
answers问题选项ArrayAnswer

Answer 类型

参数名参数描述类型是否必有
aid回答idString
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
urlSmall600px小图String
urlMedium1100px中图String
urlLarge1600px大图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 时,抛出此异常