# 获取附近的人
# 1.启动泛舟服务
# (1)初始化UbiboatManager类
创建UbiboatManager对象
UbiboatManager *ubiboatManager = NULL;
ubiboatManager = [UbiboatManager sharedManager];
# (2)初始化Ubiboat
NSString* keyStr = @"123456789abc123456789abc";
NSString* appUserId = @"123456789abc";
[ubiboatManager initWithAppKey:keyStr andWithUserID: appUserId];
参数:
- keyStr - 泛舟平台申请的秘钥,与创建的APP的bundleID对应。
- appUserId - 每个应用中用户的唯一id。
# (2)实现代理协议UbNetDelegate
泛舟服务的接口调用后,响应数据通过代理接口返回。开发者通过判断返回类型来获取不同接口的结果。
-(void)ub_onUbiboatResp:(NSMutableDictionary*)dataDic
{
switch ([[dataDic objectForKey:@"status"] intValue]) {
case UBiBoatRspMessageStatus:
//UBiBoat 状态处理
break;
case UBiBoatRspMessageGetNear:
//处理返回附近的人
break;
case UBiBoatRspMessageGetDis:
//处理返回附近某人距离
break;
default:
break;
}
}
代理接口返回说明
字段 | 类型 | 描述 |
---|---|---|
status | int | 响应状态 |
msg | String | 响应消息 |
type | int | 响应类型 NEAR:附近的人 DIS:指定距离 STATUS:异常状态 |
附近的人接口调用返回NearResp示例:
{
"type": 1,
"status": 1,
"msg": "success",
"nearPerson": [{
"appUserId": "aa",
"distance": 0.8060606060606061,
"time": "2021-07-02 19:32:36"
}]
}
- nearPerson - 返回的附近的人数组
- appUserId -附近的人的Id
- distance -相对距离,单位米
查询指定用户id距离接口调用返回DisResp示例:
{
"type": 0,
"status": 1,
"msg": "success",
"appUserId": "bb",
"distance": 1.80,
"time": "2021-07-02 19:32:36"
}
- appUserId -指定的用户Id
- distance -相对距离,单位米
异常返回StatusResp示例:
开发者在回调中收到此消息即可自定义提醒用户开启蓝牙。
{"msg":"蓝牙未打开!","status":4,"type":3}
# (3)启动泛舟服务
如该接口未调用,在调用服务接口时,会自动启动泛舟服务。但第一次的服务请求结果会延时返回。
[ubiboatManager start];
# 2.服务接口
在初始化泛舟服务后,如立即使启动泛舟服务,此时需要的权限可能还未打开,会返回异常信息,需在代理协议中处理。启动成功之后可以调用服务接口,若泛舟服务未启动成功,会启动泛舟服务,并等待启动成功。
# (1)获取附近信息
获取周围指定范围内的信息,在监听器回调返回附近的人的id、与自身的相对距离。
[ubiboatManager getNearPoi:30 type:1];
参数:
- dis - 范围,单位米,最大100米,最小5米
- type - NearInfoReq.Type类型。1为APP用户
# (2)获取与指定ID用户的相对距离
开发者调用此接口并传入指定其他用户的唯一ID,即可在监听器获取与该ID的相对距离(米)。
[ubiboatManager getDis:appUserId];
参数: appUserId - 指定用户的唯一id
# 3.停止服务
# (1)停止泛舟服务
[ubiboatManager stop];