Cocos2d-x로 Parse.com에 로그인
이것을 Cocos2d-x에서 사용해 보겠습니다. 샘플 프로젝트는 다음과 같습니다.
ntotani/cocos2dx-parsecom
Parse.com에서는 iOS, Android용 SDK가 각각 제공되므로 Cocos2d-x에서는 Plugin-X에서 이를 이용합니다. Plugin-X 자체의 도입은 다른 기사 에 있습니다. 우선 설정과 로그인을 작성합니다.
UserParse.m
- (void) configDeveloperInfo : (NSMutableDictionary*) cpInfo
{
[Parse setApplicationId:[cpInfo objectForKey:@"ApplicationID"]
clientKey:[cpInfo objectForKey:@"ClientKey"]];
[PFTwitterUtils initializeWithConsumerKey:[cpInfo objectForKey:@"TwitterConsumerKey"] consumerSecret:[cpInfo objectForKey:@"TwitterConsumerSecret"]];
}
setApplicationId
에서 Parse.com의 ID와 키를 설정합니다. 또한 이번에는 트위터로 로그인 할 수 있기를 원하기 때문에 트위터의 앱 ID도 설정합니다.UserParse.m
- (void) login
{
PFLogInViewController* vc = [[PFLogInViewController alloc] init];
vc.fields = PFLogInFieldsDefault | PFLogInFieldsTwitter;
vc.delegate = self;
[[AdsWrapper getCurrentRootViewController] presentViewController:vc animated:YES completion:nil];
}
PFLogInViewController
는 Parse.com 표준 로그인 화면입니다. fields
로 표시할 요소를 설정할 수 있습니다. 또, 플러그인중에서는 RootViewController를 직접 참조할 수 없기 때문에, AdsWrapper
의 헬퍼 메소드를 사용합니다.로그인 처리가 완료되었으므로 이것을 호출합니다.
AppDelegate.cpp
auto parse = dynamic_cast<ProtocolUser*>(PluginManager::getInstance()->loadPlugin("UserParse"));
parse->setDebugMode(true);
TUserDeveloperInfo devInfo;
devInfo["ApplicationID"] = "your_app_id";
devInfo["ClientKey"] = "your_client_key";
devInfo["TwitterConsumerKey"] = "your_consumer_key";
devInfo["TwitterConsumerSecret"] = "your_consumer_secret";
parse->configDeveloperInfo(devInfo);
parse->setActionListener(&s_parseListener);
Runtime.cpp
//startScript("");
auto parse = dynamic_cast<ProtocolUser*>(PluginManager::getInstance()->loadPlugin("UserParse"));
parse->login();
applicationDidFinishLaunching
등으로 ID를 설정하고 login
를 호출합니다. 이번은 샘플이라고 하는 것으로, 접속 대기 화면의 PLAY 버튼을 탭한 타이밍으로 로그인하고 있습니다.빌드하고 실행합니다. 빠짐없이 Plugin-X를 사용하기 위해 링커 플래그에
-ObjC
를 설정하지만 그대로 Parse.com의 SDK를 빌드 할 수 없으므로 FacebookSDK를 추가하여이를 피하십시오 (상세).로그인 화면이 나오면 성공입니다. 로그인의 결과는
PFLogInViewControllerDelegate
로 받을 수 있으므로, 이것을 UserActionListener
에 흘리면 C++ 측에서 처리할 수 있습니다.UserParse.m
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user
{
[UserWrapper onActionResult:self withRet:kLoginSucceed withMsg:user.username];
}
- (void)logInViewController:(PFLogInViewController *)logInController didFailToLogInWithError:(NSError *)error
{
[UserWrapper onActionResult:self withRet:kLoginFailed withMsg:[error localizedDescription]];
}
- (void)logInViewControllerDidCancelLogIn:(PFLogInViewController *)logInController
{
[UserWrapper onActionResult:self withRet:kLoginFailed withMsg:@"cancel"];
}
AppDelegate.cpp
class ParseListener : public UserActionListener
{
void onActionResult(ProtocolUser* pPlugin, UserActionResultCode code, const char* msg)
{
if (code == UserActionResultCode::kLoginSucceed) {
log("parse login succeed: %s", msg);
}
}
};
static ParseListener s_parseListener;
링크
Reference
이 문제에 관하여(Cocos2d-x로 Parse.com에 로그인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/blankblank/items/ed0ea105ea60869d69d3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)