社交LBS(iOS)接入指南

概述


iOS 社交定位 SDK(下文简称LBS),目前主要提供:

1.查找【附近的人】

2.上报设备位置信息

3.查询设备位置信息

注意:LBS SDK依赖MTA SDK,在使用LBS SDK之前必须使用MTA SDK上报一次统计事件!


LBS功能的一般使用流程:

获取LBSKey和LBSID

地址:http://mta.qq.com

按照页面中步骤提示,注册应用,即可获得LBSKey和LBSID


导入SDK


下载SDK压缩包,解压至本地目录。将解压后的文件夹拖拽到工程中。然后添加SDK依赖的系统框架:SystemConfiguration.framework,CoreTelephony.framework,CoreLocation.framework,libz.dylib。如果工程中已经存在,无需重复添加。

设置工程


为了使工程能够正常使用iOS设备的定位功能,需要向工程plist文件添加


NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
Privacy - Location Usage Description


三个键值对信息,如果已经存在,无需重复添加。

为了使用位置上报功能,请按照下图配置工程,打开后台位置更新

工程代码中使用SDK

设置LBSKey和LBSID,以及delegate

示例代码:


TLocationService *service = [TLocationService shareInstance];
service.lbsID = @"lbs2500000001";
service.lbsKey = @"2500000001";
service.delegate = self;


注意:(lbsKey是纯数字形式)


注册用户

目的在于将APP的用户唯一id上报到LBS系统,在请求LBS时,返回用户id的列表。

示例代码:


示例代码:
StatUser *user = [[StatUser alloc] init];
// 设置用户属性
user.gender = kMale;
user.beginAge = 1;
user.endAge = 30;
// 必须设置,为应用的唯一ID 
user.uuID = @"123456789";
//设置账号信息
StatLbsAccount *accountQQ = [[StatLbsAccount alloc] init];
accountQQ.accountType = AccoutTypeQQ;
accountQQ.accountString = @"*********";

[user addAccount:accountQQ];

StatLbsAccount *accountTel = [[StatLbsAccount alloc] init];
accountTel.accountType = AccoutTypeTelephoneNumber;
accountTel.accountString = @"***********";
[user addAccount:accountTel];


// 额外补充信息
[user.externInfo setObject:@"b" forKey:@"customArrt0"];
[user.externInfo setObject:@"0" forKey:@"customArrt1"];

// 注册用户
[service registerUser:user completion:^(BOOL isSuccess, id resposeData){}]


获取请求结果

调用- (void)fetchNearby:(StatUser

*)user;设置请求的参数,获取【附近的人】的数据。请求的结果将在service的代理方法中返回。如下:

//

result为YES,则正确获取到附近的人列表,结果存在data中

// 否则,错误信息放在data中

-

(void)nearbyNeighbors:(id)data result:(BOOL)result;

返回数据实例:


{
account={2=18625340225;5=547782999;};//账户信息键值对,参照StatLbsAccount.h
com={ 1=1;2=0;3=30; };//1表示性别,2表示起始年龄,3表示结束年龄
distance=485;//距离
ext={ customArrt0=b;customArrt1=0;};// 额外信息
gps={cdtype=1;lat="22.53894";lng="113.955803";precise=20;};//位置信息
index=1;//索引
}


清除位置信息

向后台发送清除LBS信息的请求

// result为YES 清除位置成功,反之,清除位置失败

-

(void)clearLocation:(void (^)(BOOL result))completion;

上报位置信息

实时上报,即位置距离变化满足条件就会上报


- (void)reportLocationAlways;


定时上报,即设置上报时间的长度,达到设置上报的时间之后,将停止位置数据的上报

interval 设置持续汇报位置的时间长度,单位是秒(s)


- (void)reportLocationDuration:(NSTimeInterval)interval;


取消上报位置的操作


- (void)cancelReport;


查询位置信息

查询设备本身实时位置


- (NSArray *)realtimeLocations;


返回 CLLocation 对象数组.

最新的位置信息被放在数据的末尾.


查询其他用户位置


- (void)queryLocationsFromDate:(NSString *)startDate toDate:(NSString *)endDate type:(TQueryLocationType)type pramas:(NSArray *)params;
 startDate 开始时间,格式yyyyMMDDHH
 endDate   终止时间,格式yyyyMMDDHH
 type      查询类型 (参照TLocationService.h)
 params    查询参数 (唯一标识)


注意,本接口仅支持一天的查询,即每次查询的endDate与startDate的时间间隔不能超过24小时.

查询结果通过代理方法返回,如下:

data   获取数据的结果

result 获取结果的状态


- (void)queryLocations:(id)data result:(BOOL)result;


目录

回到顶部