개요
LBS 모듈이 플레이어의 위치 정보 및 주변 플레이어 정보를 획득할 수 있으며, 플레이어로 하여금 자신의 주변의 플레이어와 교류할 수 있게 합니다.
이미지 내 붉은 색 프레임에 관한 설명
귀하께서는 lbs 기능을 통해 주변 플레이어의 닉네임, 성별, 거리 등의 정보를 얻을 수 있습니다.
액세스 내비게이션
1 사전 요구 사항
1) 초기화 모듈 설명에 따라 초기화
2) LBS 인터페이스 호출을 위해서는 먼저 QQ/위챗에 로그인해야 합니다.
3) iOS8 시스템 호환을 위해, info.plist에서 아래 그림과 같이 NSLocationWhenInUseUsageDescription(string) 필드를 추가해야 합니다.
(./res/lbs_config.png)
2 Demo 예시를 참고하십시오.
콜백 설정은 MSDKDemo/MyObserver.mm 파일의 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에 콜백할 수 있습니다. 구체적인 내용은 [주변 사람 획득 콜백 설정)#IOS_GetNearbyPersonInfo)을 참조하십시오.
호출 인터페이스
1) 기능 설명
위치 정보 인터페이스 비우기 호출은, 자신의 위치 정보를 지울 수 있는 기능으로, 다른 플레이어가 주변 사람 정보를 얻을 때 이 플레이어의 정보는 얻을 수 없습니다.
2) 인터페이스 선언
bool WGCleanLocation();
3) 파라미터 설명
없음
4) 반환값
정상 회신 YES 호출은, 로그인하지 않았을 때는 appid가 비어 있으며, openid가 공백이면 NO를 회신합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGCleanLocation();
6) 특수 설명
없음