# RToy_ZIB
**Repository Path**: roobospecs/RToy_ZIB
## Basic Information
- **Project Name**: RToy_ZIB
- **Description**: No description available
- **Primary Language**: Objective-C
- **License**: BSD-2-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2017-08-18
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 机器人—iOS—SDK
| 日期 | 版本 | 内容描述 |
| ---------- | ----- | ---------------------------------------- |
| 2017-12-20 | 1.5.0 | 完善sdk |
| 2017-10-10 | 1.4.0 | 1获取播放历史
2 删除播放历史
3 获取收藏列表
4 取消收藏列表
5 增加收藏
6 资源搜索
7设备重启
8获取自定义专辑列表
9删除自定义专辑的资源
10上传宝宝头像
11获取聊天记录列表
12设置播放模式
13重置自定义专辑
14添加资源到自定义专辑
15增加获取配网结果
16 获取专辑详情
17 搜索增加专辑详情 |
| 2017-09-20 | 1.3.0 | 完成SDK 功能需求点 |
| 2017-09-08 | 1.2.0 | 完成SDK功能结构 |
| 2017-09-08 | 1.2.0 | 完成SDK功能结构 |
## 1 综述
在podfile 顶部添加如下:
```
source 'https://git.oschina.net/roobospecs/roobospecs.git'
source 'https://github.com/CocoaPods/Specs.git'
```
在podfile 文件当前项目target添加:
```
pod 'RToy_ZIB'
```
sdk中主要涉及的类包括以下
| 类名 | 描述 |
| :--------------- | :------------------------ |
| RBAccessConfig.h | sdk配置类注:需要在调用SDKapi之前配置参数 |
| RBUserApi.h | 用户管理api |
| RBDeviceApi.h | 配置网络和设备管理api |
| RBPlayerApi.h | 资源管理和播放api |
## 2 全局设置
#### 2.1 用户信息设置
| 属性名称 | 类型 | 描述 |
| :---------- | ------------ | :------------------------------------ |
| developEnv | RBDevelopEnv | 开发环境 分为开发和发布环境,默认为发布环境 |
| appID | NSString | App配置ID |
| userID | NSString | 当前用户的userID(用户登录成功服务器返回) |
| accessToken | NSString | token(用户登录成功服务器返回) |
| deviceID | NSString | 当前控制的设备ID, 当切换控制设备时 需要更改currDeviceID值 |
eg:
```objective-c
RBAccessConfiger.developEnv = RBDevelopEnv_Dedug;
RBAccessConfiger.userID = @"ps:83f936aa16706d29105007bab244cc6b";
RBAccessConfiger.accessToken = @"805d6b325477535881503880f0d9191f";
RBAccessConfiger.currDeviceID = @"1011000000101060";
```
#### 2.2 推送token设置
```
aps = {
alert = "";
"content-available" = 1;
};
data = {
};
id = 0;
mcid = 1011000000101060;
mt = 88;//
no = 0;
```
aps 属性意义
| 属性 | 意义 |
| ----------------- | --------------- |
| alert | 推送的标题 |
| content-available | iOS 判断是不是静默推送 1 |
| data | 推送的内容体 |
| mcid | 推送的设备端 |
| mt | 推送的消息类型 |
| no | 自己独立的消息序列号 |
mt消息类型
| 消息类型码 | 意义 | 备注 |
| ----- | ------------------ | ------------------- |
| 5 | 用户绑定申请(管理员收到) | |
| 53 | 设备没电 | |
| 54 | 设备离线 | |
| 56 | wifi 断开 | |
| 66 | 邀请绑定 | |
| 67 | 绑定请求通过(发送给申请人) | |
| 68 | 绑定请求被拒绝(发送给申请人) | |
| 69 | 自己移除绑定(发送给其他家庭成员) | |
| 70 | 通知家庭成员移除某人的绑定关系 | |
| 71 | 通知被删除人接触绑定 | |
| 72 | 管理员接受绑定申请(发送给家庭成员) | |
| 73 | 管理员拒绝绑定申请(发送给家庭成员) | |
| 74 | 用户申请绑定(申请绑定人收到) | |
| 75 | 邀请加入(发送给家庭成员) | |
| 82 | 转移管理员 | |
| 83 | wifi连接 | |
| 87 | app点播状态 | |
| 88 | 声音播放状态 | 收到推送请求6.7接口获取播放状态信息 |
| 89 | 低电量 | |
| 103 | 电量低于20% | |
| 1015 | 播放音乐中 | |
| 1020 | 设备升级成功 | |
| 1021 | 设备升级失败 | |
| 6000 | 设备向APP发送IM消息 | 收到推送请求5.7接口获取新消息 |
| 6001 | 自定义控制命令 | |

## 3 配置网络
#### 3.1 生成配网声波
```objective-c
/**
生成配网声波
@param wifiName wifi 名称
@param wifiPwd wifi 密码
@param block 声波url 文件
*/
+(void)getSoundWave:(NSString *)wifiName wifiPsd:(NSString *)wifiPwd block:(nullable void (^)(id resonance,NSError *error)) block
```
#### 3.2 获取配网绑定结果
```objective-c
/**
获取声波配网的结果 由于配网有一定的时间差,建议采用定时轮询
*/
+(void)getDeviceBindInfo:(void (^)(RBBindInfo *_Nullable response, NSError *_Nullable error))block;
```
## 4 用户管理
#### 4.1 更改管理员
```objective-c
/**
更改管理员
@param userID 用户的ID
*/
+ (void)changeManager:(NSString *)userID block:(void (^)(BOOL isSuccess, NSError *))block;
```
#### 4.2 添加用户到成员组
```objective-c
/**
添加用户到成员组
@param phone 用户的手机号码
*/
+ (void)inviteUser:(nonnull NSString *)phone block:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 4.3 从成员组中删除用户
```objective-c
/**
从当前设备成员组中删除用户
@param userid 用户 id
*/
+ (void)deleteUser:(nonnull NSString *)userID block:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 4.4 获取宝宝信息
```objective-c
/**
获取宝宝信息
*/
+(void)getBabyList:(void (^)(NSArray*babyModels,NSError *error))block;
```
##### RBBabyModel模型
| 属性 | 类型 | |
| -------- | -------- | ------------------ |
| babyId | NSString | 宝宝id |
| birthday | NSString | 生日 格式"YYYY-MM-dd" |
| img | NSString | 头像 |
| nickname | NSString | 宝宝昵称 |
| gender | NSString | 性别 男"boy" 女"girl" |
| tags | NSString | 宝宝标签 格式采用"/"分割 |
#### 4.5 添加宝宝
```objective-c
/**
增加宝宝信息
@param babyModel 宝宝数据模型
*/
+(void)addBabyInfo:(nonnull RBBabyModel*)babyModel block:(void (^)(RBBabyModel *babyModel,NSError *error))block;
```
#### 4.6 编辑宝宝
```objective-c
/**
修改宝宝信息
@param babyModel 宝宝数据模型
*/
+(void)editBabyInfo:(nonnull RBBabyModel*)babyModel block:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 4.7 编辑宝宝标签
```objective-c
/**
增加修改宝宝标签
@param babyTags 宝宝标签 以/分割标签
*/
+(void)addBabyTags:(NSString*)babyTags babyId:(NSString*)babyId block:(void (^)(RBBabyModel *babyModel,NSError *error))block;
```
#### 4.8 上传头像
```objective-c
/**
上传图片接口
@param image 图片资源
*/
+ (void)addAvatar:(UIImage *)image progressBlock:(void(^)(NSProgress *progress))progressBlock resultBlock:(void (^)(RBAvatarModel *avatarModel, NSError * _Nullable))resultBlock;
```
#### 4.9 上传宝宝头像
```objective-c
/**
上传宝宝头像资源
@param avatarImage 图片的数据
*/
+ (void)uploadBabyAvatar:(NSString*)babyID avatarImage:(UIImage *)avatarImage progressBlock:(void(^)(NSProgress *progress))progressBlock resultBlock:(void (^)(NSString *imgURL, NSError * _Nullable))resultBlock
```
#### 4.10 删除宝宝
```objective-c
/**
删除宝宝信息
@param babyIds 宝宝ID数组
*/
+(void)deleteBabyInfo:(NSArray*)babyIds block:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 4.11 获取宝宝心理模型
```objective-c
/**
获取宝宝心理模型
@param babyID 宝宝ID
*/
+(void)getGrowthModel:(NSString*)babyID block:(void (^)(RBBabyGrowthModel *growthModel,NSError *error))block;
```
## 5 设备管理
#### 5.1 获取用户的设备列表
```objective-c
/**
获取用户的设备列表
*/
+ (void)getDeviceList:(void(^)(NSArray *device,NSError *error))block;
```
| 属性 | 类型 | 意义 |
| ------------ | -------- | --------------- |
| deviceID | NSString | 设备ID |
| name | NSString | 设备的名称 |
| battery | float | 设备当前电量 |
| manager | BOOL | YES 管理员 NO不是管理员 |
| online | BOOL | 是否连接网络 |
| power | BOOL | 是否在充电中 |
| power_supply | BOOL | 是否连接电源 |
| device_type | NSString | 设备类型 |
#### 5.2 获取设备的详细信息
```objective-c
/**
获取设备的详细信息
*/
+ (void)getDeviceDetail:(void (^)(RBDevicesDetail *detail,NSError *error))block;
```
#### 5.3 获取设备硬件信息
```objective-c
/**
获取设备硬件信息
*/
+ (void)getHardwareInfo:(void(^)(id deviceDict,NSError *error))block;
```
#### 5.4 发送TTS
```objective-c
/**
发送文本内容
@param text 文字内容
*/
+ (void)sendTTSText:(NSString *)text block:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 5.5 发送声音文件
```objective-c
/**
发送声音文件
@param filePath 文件url 路径
@param progressBlock 上传进度
@param resultBlock 上传结果
*/
+ (void)sendVoice:(NSString *)filePath progressBlock:(void(^)(NSProgress *progress))progressBlock resultBlock:(void (^)(id response, NSError * _Nullable))resultBlock;
```
#### 5.6 发送自定义控制命令
```objective-c
/**
发送自定义控制命令(如耳灯 童锁)
@param params 请求参数
*/
+ (void)sendCustomCommand:(NSDictionary*)params block:(void (^)(BOOL isSuccess,NSError *error))block;
```
自定义控制参数
| 控制命令 | 请求参数 |
| ---- | --------------------------- |
| 耳灯 | @{@"isEarLightOn":@(布尔值)} |
| 童锁 | @{@" isChildLockOn":@(布尔值)} |
#### 5.7 获取聊天记录列表
```objective-c
/**
获取聊天记录的列表
@param fromID 首次为0 其他使用当前聊天记录列表最后的RBChatModel的chatID
*/
+(void)getChatMessageList:(NSString*)fromID block:(void (^)(RBChatList *chatList,NSError *error))block;
```
#### 5.8 修改设备音量
```objective-c
/**
修改设备音量
@param voiceValue 音量值 最小值0 最大值100
*/
+ (void)changeDeviceVolume:(NSInteger)voiceValue block:(void (^)(BOOL isSuccess,NSError *error)) block;
```
#### 5.9 修改设备的名称
```objective-c
/**
修改设备的名称
@param newName 新的名称
*/
+ (void)updateDeviceName:(NSString *)deviceName block:(void (^)(BOOL isSuccess,NSError *error)) block;
```
#### 5.10 关闭设备
```objective-c
/**
关闭设备
@param block isSucceed 是否成功 error 错误信息
*/
+ (void)shutdownDevice:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 5.11 重启设备
```objective-c
/**
重启设备
@param block isSucceed 是否成功 error 错误信息
*/
+ (void)restartDevice:(void (^)(BOOL isSuccess,NSError *error))block;
```
#### 5.12 删除当前的设备
```objective-c
/**
删除当前的设备 注意在block回调成功时 需要修改当前的 RBAccessConfiger.currDeviceID的设备ID,如果当前登录的用户是管理员 先调用4.1接口转移管理员权限,否则设备会被服务器随机设置管理员
*/
+ (void)deleteDevice:(void (^)(BOOL isSuccess,NSError *error)) block;
```
#### 5.13 检查设备新版本
```objective-c
+(void)checkDeviceVersion:(void (^)(BOOL update,NSString *version,NSError * _Nullable error))block;
```
#### 5.14 设备升级
```objective-c
+(void)updateDevice:(void (^)(id response, NSError * _Nullable))block;
```
#### 5.15 获取闹钟列表
```objective-c
+(void)getAlarmList:(void (^)(RBAlarmList *alarmList, NSError * _Nullable error))block;
```
| 属性 | 类型 | 意义 |
| -------- | --------- | ------------------------------- |
| alarmId | NSString | 闹钟ID |
| timer | NSInteger | 闹钟时间 |
| timezone | NSString | 时区,GMT(\+\|-)[0-9]+ 格式 |
| type | NSInteger | 闹钟类型 范围:-128-127 -128为定时关机 |
| name | NSString | 闹钟名称 |
| sound | NSString | 闹钟提示音url |
| repeat | NSString | 重复类型 1-7代表周一到周日 "-1"代表一次性闹钟 |
| status | BOOL | 闹钟开关状态 |
| extra | NSString | 自定义内容 |
| week | NSString | 1-7分别代表周一到周日,只会在单次闹钟中使用,重复闹钟返回0 |
#### 5.16 增加闹钟
```objective-c
+ (void)addAlarm:(RBAlarmModel*)model block:(void (^)(RBAlarmModel *model,NSError *error)) block;
```
#### 5.17 修改闹钟
```objective-c
+ (void)editAlarm:(RBAlarmModel*)model block:(void (^)(BOOL isSuccess,NSError *error)) block;
```
#### 5.18 删除闹钟
```objective-c
+ (void)deleteAlarm:(NSArray*)alarmIds block:(void (^)(BOOL isSuccess,NSError *error)) block;
```
## 6 资源管理
#### 6.1 获取分类列表
```objective-c
/**
获取分类
@param babyAge 宝宝年龄 未知设置0
*/
+(void)getCategoryList:(NSInteger)babyAge block:(nullable void (^)(RBCategoryList *response,NSError* _Nullable error)) block;
```
##### RBCategoryModel模型
| 属性 | 类型 | 意义 |
| ----- | -------- | ------ |
| cID | NSString | 资源分类ID |
| title | NSString | 分类名称 |
| desc | NSString | 分类描述 |
| attr | NSString | 分类属性 |
| icon | NSString | 分类图标 |
#### 6.2 获取专辑列表
```objective-c
/**
获取模块底下专辑
@param modID 模块ID
@param page 当前页码 起始值 1
*/
+ (void )getAlbumList:(NSString* )cID page:(NSInteger)page block:(nullable void (^)(RBCategotyList* _Nullable list,NSError * _Nullable error)) block;
```
RBAlbumModel 模型
| 属性 | 类型 | 意义 |
| ----- | --------- | ------- |
| aID | NSString | 专辑ID |
| img | NSString | 专辑大图 |
| thumb | NSString | 专辑小图 |
| title | NSString | 专辑名称 |
| total | NSInteger | 专辑中资源总数 |
#### 6.3 获取资源列表
```objective-c
/**
获取专辑的资源列表
@param aID 专辑id
@param page 当前页码 起始值 1
@param count 每页返回的数量 注意: 0不返回资源列表 只有专辑详情
*/
+ (void )getResourceList:(NSString*)aID page:(NSInteger)page count:(NSInteger)count block:(nullable void (^)(RBResourceList* _Nullable list,NSError * _Nullable error))block;
```
#### 6.4 播放歌曲
```objective-c
/**
播放当前的资源
@param type 0 :播放当前资源 1上一首 2 下一首
@param aID 专辑id
@param rID 资源ID
*/
+ (void )playResource:(NSInteger)type aID:(NSString* )aID rID:(NSString*)rID block:(void (^)(id _Nullable response, NSError * _Nullable))block;
```
###### RBResourceModel 模型
| 属性 | 类型 | 意义 |
| ------ | -------- | ------- |
| rID | NSString | 资源ID |
| name | NSString | 名称 |
| src | NSString | 来源 |
| size | NSString | 大小 |
| type | NSString | 类型 |
| length | NSString | 音频时长(秒) |
#### 6.5 停止播放
```objective-c
/**
停止播放
@param rID 资源的ID
*/
+ (void )stopResource:(NSString*)rID block:(void (^)(BOOL response, NSError * _Nullable))block;
```
#### 6.6 设置播放模式
```objective-c
/**
设置播放模式
@param type 1 单曲循环 2 列表循环
*/
+(void)setPlayMode:(NSInteger)mode block:(void (^)(id _Nullable response, NSError * _Nullable))block;
```
#### 6.7 获取播放状态
```objective-c
/**
获取播放状态
*/
+ (void )getPlayState:(void (^)(RBPlayInfoModel* _Nullable response, NSError * _Nullable))block;
```
##### RBPlayInfoModel模型
| 属性 | 类型 | 意义 |
| :-------- | :-------: | ----------------------------------- |
| rID | NSString | 播放资源ID |
| status | NSString | reading准备 start 开始 stop 停止 pause 暂停 |
| type | NSString | 点播来源 |
| aID | NSString | 专辑ID |
| title | NSString | 资源名称 |
| aName | NSString | 专辑的名称 |
| img_large | NSString | 专辑图片 |
| mode | NSInteger | 播放模式 |
#### 6.8 获取收藏列表
```objective-c
/**
获取收藏的资源列表
@param type 1 单曲 2 专辑
@param page 页数
*/
+ (void)getCollectionList:(NSInteger)type page:(NSInteger)page block:(void (^)(id _Nullable response,NSError * _Nullable))block;
```
#### 6.9 添加收藏
```objective-c
/**
添加资源收藏
*/
+ (void)addCollection:(NSArray*)collectionModels block:(void (^)(id _Nullable response, NSError * _Nullable))block;
```
#### 6.10 删除收藏
```objective-c
/**
取消资源的收藏
@param favId 当前收藏的ID
*/
+ (void)deleteCollection:(NSArray*)fIDs block:(void (^)(id _Nullable response, NSError * _Nullable))block;
```
#### 6.11 获取播放历史
```objective-c
/**
获取播放历史
*/
+(void)getPlayHistoy:(NSString*)rID block:(void (^)(id _Nullable response,NSError * _Nullable))block;
```
#### 6.12 删除播放历史
```objective-c
/**
删除播放历史
@param ids 资源的id
*/
+(void)deletePlayHistoy:(NSArray *)IDs block:(void (^)(id _Nullable response,NSError * _Nullable))block;
```
#### 6.13 获取自定义的专辑列表
```objective-c
/**
获取用户自定义的歌曲专辑
*/
+(void)getCustomAlbumList:(void (^)(RBAlbumList *list ,NSError * error))block;
```
#### 6.14 获取自定义资源列表
```objective-c
调用6.3获取资源列表
```
#### 6.15 添加资源到自定义专辑
```objective-c
/**
添加歌曲到自定义的专辑
@param AlbumID 自定义的专辑ID
@param sourceID 自定义的歌曲ID
*/
+(void)addCustomResource:(NSArray*)rIDs aID:(NSString *)aID block:(void (^)(id response,NSError * error))block;
```
#### 6.16 删除自定义的歌曲
```objective-c
/**
删除歌曲到自定义的歌曲专辑
@param rIDs 自定义的歌曲ID数组
@param cID 自定义的专辑ID
*/
+(void)delCustomResource:(NSArray*)rIDs aID:(NSString *)aID block:(void (^)(id response,NSError* _Nullable error))block;
```
#### 6.17 重置设备默认专辑
```objective-c
/**
重置设备默认专辑
@param albumID 专辑ID
*/
+(void)resetCustomAlbum:(NSString*)albumID block:(void (^)(BOOL isSuccess,NSError * error))block;
```
#### 6.18 资源搜索
```objective-c
/**
资源搜索
@param keyword 关键字
*/
+(void)searchResource:(NSString*)keyword page:(NSInteger)page block:(void (^)(NSArray *response,NSError * error))block;
```