LBS功能
Unity3D
概述
接入向导
获取玩家位置信息
获取附近的人
清空位置信息
获取IP信息
Android
概述
接入向导
获取玩家位置信息
获取附近的人
清空位置信息
获取IP信息
IOS
概述
接入向导
获取玩家位置信息
获取附近的人
清空位置信息
获取IP信息
其他
数据结构
系统工具
Crash上报 / IOS / 概述

概述

LBS模块可以获取玩家的位置信息,并获取附近的玩家的信息,让玩家可以和自己周边的玩家进行互动。

显示详情

接入向导

3.3.8版本开始LBS相关功能变更为单独的库 MSDKLbs.framework ,对外接口保持不变,各业务可按需接入。

1 前置条件

1) 您已经按初始化模块说明完成 初始化
2) 调用LBS接口需要先登录QQ/微信
3) 为兼容iOS8系统,需要在info.plist加入NSLocationWhenInUseUsageDescription(string)字段,如下图

2 参考Demo示例

回调设置参考 MSDKDemo/MyObserver.mm 文件的 OnLocationNotify, OnLocationGotWithLocationRet 方法。

接口调用参考 MSDKDemo/LoginSucceedVC.mm 文件的 onClickGetNearbyPeople, onClickClearMyLocation, onClickMyLocationInfo方法。

获取玩家位置信息

注册回调

1)功能描述

获取玩家位置信息接口 WGGetLocationInfo 会将获取到的地理位置信息(经纬度)通过回调 OnLocationGotNotify 返回给游戏。

2)接口声明
void OnLocationGotNotify(LocationRet& locationRet)
3)参数说明
返回值名称 类型 说明
locationRet LocationRet 位置信息结构体
4)返回值

5)示例代码
void MyObserver::OnLocationGotNotify(LocationRet& locationRet)
{
    NSString *flag = [NSString stringWithFormat:@"%d",locationRet.flag];
    NSString *desc = [NSString stringWithCString:(const char*)locationRet.desc.c_str() encoding:NSUTF8StringEncoding];
    NSString *latitudeStr = [NSString stringWithFormat:@"%f",locationRet.latitude];
    NSString *longitudeStr = [NSString stringWithFormat:@"%f",locationRet.longitude];
    NSMutableDictionary *personInfoDict = [NSMutableDictionary new];
    [personInfoDict setObject:flag forKey:@"flag"];
    [personInfoDict setObject:desc forKey:@"desc"];
    [personInfoDict setObject:latitudeStr forKey:@"latitude"];
    [personInfoDict setObject:longitudeStr forKey:@"longitude"];
}
6)特殊说明

7)名词解释

调用接口

1)功能描述

获取玩家的地理位置信息:经纬度。调用结果回调到 OnLocationGotNotify。

2)接口声明
bool WGGetLocationInfo();
3)参数说明

4)返回值

调用正常返回YES,没有登录、appid为空、openid为空返回NO。

5)示例代码
WGPlatform::GetInstance()->WGGetLocationInfo();
6)特殊说明

7)名词解释

获取附近的人

注册回调

1)功能描述

获取当前玩家附近的玩家信息,结果会通过 OnLocationNotify 回调给游戏。

2)接口声明
void OnLocationNotify(RelationRet &relationRet)
3)参数说明
返回值名称 类型 说明
relationRet RelationRet 用户信息结构体
4)返回值

5)示例代码
void MyObserver::OnLocationNotify(RelationRet &relationRet) {
    NSLog(@"location callback");
    NSLog(@"count == %lu",relationRet.persons.size());
    NSMutableArray *personInfoArr = [NSMutableArray new];
    for (int i = 0; i < relationRet.persons.size(); i++)
    {
        PersonInfo logInfo = relationRet.persons[i];
        NSMutableDictionary *personInfoDict = [NSMutableDictionary new];
        NSString *nickName = [NSString stringWithCString:(const char*)logInfo.nickName.c_str() encoding:NSUTF8StringEncoding];
        NSString *openID = [NSString stringWithCString:(const char*)logInfo.openId.c_str() encoding:NSUTF8StringEncoding];
        NSString *gender = [NSString stringWithCString:(const char*)logInfo.gender.c_str() encoding:NSUTF8StringEncoding];
        NSString *pictureSmall = [NSString stringWithCString:(const char*)logInfo.pictureSmall.c_str() encoding:NSUTF8StringEncoding];
        NSString *pictureMiddle = [NSString stringWithCString:(const char*)logInfo.pictureMiddle.c_str() encoding:NSUTF8StringEncoding];
        NSString *pictureLarge = [NSString stringWithCString:(const char*)logInfo.pictureLarge.c_str() encoding:NSUTF8StringEncoding];
        NSString *province = [NSString stringWithCString:(const char*)logInfo.provice.c_str() encoding:NSUTF8StringEncoding];
        NSString *city = [NSString stringWithCString:(const char*)logInfo.city.c_str() encoding:NSUTF8StringEncoding];
        NSString *gpsCity = [NSString stringWithCString:(const char*)logInfo.gpsCity.c_str() encoding:NSUTF8StringEncoding];
        NSString *country = [NSString stringWithCString:(const char*)logInfo.country.c_str() encoding:NSUTF8StringEncoding];
    }
}
6)特殊说明

7)名词解释

调用接口

1)功能描述

获取当前玩家附近的同玩此游戏的玩家信息。

2)接口声明
void WGGetNearbyPersonInfo();
3)参数说明

4)返回值

5)示例代码
WGPlatform::GetInstance()->WGGetNearbyPersonInfo();
6)特殊说明

7)名词解释

清空位置信息

注册回调

清空位置信息接口 WGCleanLocation 的回调方法和获取附近的人接口一样结果会回调到 OnLocationNotify。具体参考获取附近的人的回调设置

调用接口

1)功能描述

调用清空位置信息接口可以清除自己的位置信息,当其他玩家获取附近的人时无法获取此玩家的信息。

2)接口声明
bool WGCleanLocation();
3)参数说明

4)返回值

调用正常返回YES,没有登录、appid为空、openid为空返回NO。

5)示例代码
WGPlatform::GetInstance()->WGCleanLocation();
6)特殊说明

7)名词解释

获取 IP 信息

1 概要说明

MSDK 提供了基于用户出口 IP 的位置信息服务,当前可以提供国家、省、市信息,以满足业务需求。说明:如果用户使用 VPN、网络代理、加速器(部分)等场景,MSDK 会获取到对应服务器的 IP 位置信息。详情可参考MSDK IP 获取位置信息服务说明。3.3.271 版本开始新增该接口。

2 注册回调

class MyObserver : public WGPlatformObserver
{
public:
    ...    
    // 获取 IP 信息回调
    void OnLocationGetIPInfoNotify(GetIPInfoRet& ipInfoRet);
    ...
};

3 接口调用

WGPlatform::GetInstance()->WGGetIPInfo();