概述
LBS模块可以获取玩家的位置信息,并获取附近的玩家的信息,让玩家可以和自己周边的玩家进行互动。
显示详情接入向导
LBS功能插件化,业务可按需合入。
- Android 3.3.15a 版本开始新增
MSDKLbs.jar
,对外接口保持不变,如不需要LBS能力,直接删除MSDKLibrary/libs/MSDKLbs.jar
文件即可 - iOS 3.3.8i 版本开始新增
MSDKLbs.framework
,对外接口保持不变,如不需要LBS能力,直接删除Library/MSDKLbs/MSDKLbs.framework
文件即可
1 前置条件
1) 您已经按初始化模块说明完成 初始化
2) 调用LBS接口需要先登录QQ/微信
2 注册回调
概述
获取附近的人接口WGGetNearbyPersonInfo()和清空自己位置信息接口WGCleanLocation()的结果会通过回调 NearbyEvent 返回给游戏。获取自己位置信息接口WGGetLocationInfo()的结果通过回调 LocateEvent 返回给游戏。
获取自己位置信息回调
1)功能描述
获取自己位置信息回调
2)接口声明
public delegate void LocateDelegate(LocationRet ret);
3)参数说明
返回值名称 | 参数类型 | 说明 |
---|---|---|
ret | LocationRet | 玩家位置信息类 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.LocateEvent += (LocationRet locationret) => {
Debug.Log(locationret.ToString());
message = locationret.ToString();
if (locationret.flag == eFlag.eFlag_Succ) {
// 获取位置信息成功
} else {
// 获取位置信息失败
}
}
6)特殊说明
无
7)名词解释
无
获取附近的人与清空自己位置信息回调
1)功能描述
获取附近的人与清空自己位置信息回调
2)接口声明
public delegate void NearbyDelegate(RelationRet ret);
3)参数说明
返回值名称 | 参数类型 | 说明 |
---|---|---|
ret | RelationRet | 玩家信息的集合类 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.NearbyEvent += (RelationRet relationRet) => {
Debug.Log(relationRet.ToString());
if (relationRet.flag == eFlag.eFlag_Succ) {
// 查询附近的人成功
//游戏TODO 获取附近的人信息
} else {
// 查询附近的人失败
//游戏TODO 根据不同的返回值做处理
}
}
6)特殊说明
无
7)名词解释
无
3 调用lbs接口获取信息
此时您可以调用MSDK接口,获取地理位置信息了,详情参见获取玩家位置信息,获取附近的人,清空位置信息。
恭喜您完成了lbs功能接入工作!
获取玩家位置信息
1 概要说明
获取玩家位置信息
2 注册回调
请参见 注册回调
3 接口调用
1)功能描述
获取玩家的地理位置信息:经纬度。
2)接口声明
bool WGGetLocationInfo();
3)参数说明
无
4)返回值
没有返回值。获取的结果会通过注册并实现回调函数中的LocateEvent事件,携带LocationRet返回。
5)示例代码
WGPlatform.Instance.WGGetLocationInfo();
6)特殊说明
无
7)名词解释
无
获取附近的人
1 概要说明
获取附近的人
2 注册回调
请参见 注册回调
3 接口调用
1)功能描述
获取当前玩家附近的玩家信息,结果信息通过 NearbyEvent 携带的RelationRet返回。
2)接口声明
void WGGetNearbyPersonInfo();
3)参数说明
无
4)返回值
没有返回值。获取的结果会通过注册回调中的附近人的信息将通过 NearbyEvent 携带的RelationRet返回给您。
5)代码示例:
void WGGetNearbyPersonInfo ();
6)特殊说明
无
7)名词解释
RelationRet.flag值表示返回状态, 可能值(eFlag枚举)如下:
eFlag_LbsNeedOpenLocationService: 需要引导用户开启定位服务
eFlag_LbsLocateFail: 定位失败, 可以重试
eFlag_Succ: 获取附近的人成功
eFlag_Error: 定位成功, 但是请求附近的人失败, 可重试
RelationRet.persons是一个Vector, 其中保存了附近玩家的信息 详见常量查询
清空位置信息
1 概要说明
清空位置信息接口可以清除自己的位置信息,当其他玩家获取附近的人时无法获取此玩家的信息。
2 注册回调
请参见 注册回调
3 接口调用
1)功能说明
调用清空位置信息接口可以清除自己的位置信息,当其他玩家获取附近的人时无法获取此玩家的信息,结果信息通过 NearbyEvent 携带的RelationRet ret返回。
2)接口声明
bool WGCleanLocation();
3)参数说明
无
4)返回值
true或false,只表明是否向服务器发送了清除位置的请求。获取的结果会通过注册并实现回调函数中的 NearbyEvent 事件,携带RelationRet返回。
5)示例代码
WGPlatform.Instance.WGCleanLocation();
6)特殊说明
无
7)名称解释
RelationRet.flag值表示返回状态, 可能值(eFlag枚举)如下:
eFlag_LbsNeedOpenLocationService: 需要引导用户开启定位服务
eFlag_LbsLocateFail: 定位失败, 可以重试
eFlag_Succ: 清除成功
eFlag_Error: 清除失败, 可重试
获取 IP 信息
1 概要说明
MSDK 提供了基于用户出口 IP 的位置信息服务,当前可以提供国家、省、市信息,以满足业务需求。说明:如果用户使用 VPN、网络代理、加速器(部分)等场景,MSDK 会获取到对应服务器的 IP 位置信息。详情可参考MSDK IP 获取位置信息服务说明。3.3.271 版本开始新增该接口。
2 注册回调
MsdkEvent.Instance.OnLocationGetIPInfoEvent += (GetIPInfoRet relationRet) => {
//Your code here
}
3 接口调用
WGPlatform.Instance.WGGetIPInfo();