网络信息传递之 回调信息注册和响应
2014-09-20 18:35
120 查看
<1>回调宏定义 typedef void (cocos2d::CCObject::*MethodDataJson)(CMessage *message); #define callFuncSelectorJson(_SELECTOR) (MethodDataJson)(&_SELECTOR) <2>回调函数宏定义 #define DM_CALL_FUNC_LISTERNER(funName)\ virtual void funName(CMessage *message) <3>回调函数声明 DM_CALL_FUNC_LISTERNER(cfLogin); <4>注册 CManage::instance()->addListener("1002", this, callFuncSelectorJson(LoginLayer::cfLogin)); <5>回调实现 void LoginLayer::cfLogin(CMessage *message) { CCLOG("====开始解析用户字段"); #if(API_ID == API_360) //----------------------------360解析各种字段------------------------ //获取到各个对象 const rapidjson::Value& msg = message->getJsonMsg(); const rapidjson::Value& res = DICTOOL->getSubDictionary_json(msg, "res"); const rapidjson::Value& token = DICTOOL->getSubDictionary_json(res, "token"); //获取到各个对象键值对应的值 My91Login::sharedMy91Login()->_userInfo.accessToken = DICTOOL->getStringValue_json(token, "access_token"); My91Login::sharedMy91Login()->_userInfo.passport = DICTOOL->getStringValue_json(msg, "passport"); My91Login::sharedMy91Login()->_userInfo.nickname = DICTOOL->getStringValue_json(msg, "nickname"); My91Login::sharedMy91Login()->_userInfo.userId = DICTOOL->getIntValue_json(msg, "userId"); CCLOG("=====解析用户数据"); #elif(API_ID == API_UC) const rapidjson::Value& msg = message->getJsonMsg(); MyUC::sharedMyUC()->roleId = DICTOOL->getIntValue_json(msg, "userId"); MyUC::sharedMyUC()->roleName = DICTOOL->getStringValue_json(msg, "nickname"); CCLOG("*****%d, %s******",MyUC::sharedMyUC()->roleId, MyUC::sharedMyUC()->roleName.c_str()); #endif //发送消息(获取任务信息,通知登录) WriteJson wj; wj.setRequestId(2001); CManage::instance()->sendMessage(wj.getString()); CCLOG("=====通知登录"); }
相关文章推荐
- PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
- “尚未注册网络”错误信息的解决办法
- 利用炼金术网络库存能力来注册你的局域网的网络设备的详细信息。
- 处理注册信息的小例子(bundle传递数据)
- activity 之间信息的传递 Intent 回调参数startActivityForResult
- 注册信息验证(小小特效)+ajax回调检测用户名
- Android:“尚未注册网络”错误信息的解决办法
- axis1.4部署webService 读取和响应Header信息\传送文件\BasicHandler\ SimpleChain\传递对象集合等测试
- "尚未注册网络"错误信息的解决办法
- 使用Apache HttpClient访问网络(实现手机端注册,服务器返回信息)
- “尚未注册网络”错误信息的解决办法
- Android开发八 “尚未注册网络”错误信息的解决办法
- 3、“尚未注册网络”错误信息的解决办法
- QQ快捷登录需要在 AndroidManifest.xml 注册添加如下信息,sdk中提供开始配置少了回调的配置,报错
- Android模拟器“尚未注册网络”错误信息的解决办法
- PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
- 注册信息的时候出现错误 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey>
- PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
- 边记边学PHP-(七)HTML语言设计注册界面及传递信息的实现
- 【google M】android 网络服务状态运行机制(语音、数据注册状态;运营商信息PLMN,SPN;radio技术;信号强度)