湖南长沙房卡麻将学习 三,微信登录流程及服务器ip配置

在看这篇文章之前,建议先看一下我的湖南长沙房卡麻将学习 二, 因为看完二才能整体把握。


请求发送流程:

看过场景初始化就知道Scene *pScene = HNGame::scene(); 启动流程。
HNGame.cpp:
HNGame::scene(); ->
HNGame::init() ->
new HNScenceManager(this);
HNScenceManager.cpp:
HNScenceManager::init() ->
new HNLogonScence;
HNLogonScence.cpp:
HNLogonScence::init()->
WidgetManager::addButtonCB("Button_WeiXinLogon",this,button_selector(HNLogonScence::Button_WeiXinLogon)); ->
void HNLogonScence::Button_WeiXinLogon(cocos2d::Ref*,WidgetUserInfo*)->
MissionWeiXin::Instance().logonWeiXin();
MissionWeiXin.cpp:
MissionWeiXin::logonWeiXin()->
JniFun::longinWX("","");
JniFun.cpp:
longinWX()->
此处从cpp中调用java函数,JAVA_CLASSNAME为java的类名, LoginWX为方法。
bool isHave = JniHelper::getStaticMethodInfo(minfo,JAVA_CLASSNAME,"LoginWX","(Ljava/lang/String;Ljava/lang/String;)V");
Native.java:
LoginWX()->
开始调用微信的api库
intent.putExtra(WXEntryActivity.ReqWxLogin,"wxlogin");
Cocos2dxActivity.getContext().startActivity(intent);
WXEntryActivity.java:
onCreate()->
设置响应回调
api.handleIntent(intent, this);
发送登录请求
reqLogin(); ->
发送后产生回调
onReq(BaseReq req)


上面就是微信的请求发送流程,登录请求发送后,微信会有响应回调,下面看一下响应流程:


WXEntryActivity.java:
public void onResp(BaseResp resp)->
case BaseResp.ErrCode.ERR_OK: //成功
Native.WxLoginGetAccessToken(Url);
Native.java:
WxLoginGetAccessToken()-> // jni调用, java调用cpp
JniCallback.cpp:
Java_org_cocos2dx_cpp_Native_WxLoginGetAccessToken() ->
MissionWeiXin::Instance().Req_Access_token(data);
MissionWeiXin.cpp:
Req_Access_token()->
通过http协议获取
MCWebReq::instance().sendRequestDocumentUrl(kUrl,CC_CALLBACK_1(MissionWeiXin::Rsp_Access_token,this),nullptr); ->
Rsp_Access_token()->
Req_UserInfo(access_token,openid);->
通过http协议获取
MCWebReq::instance().sendRequestDocumentUrl(kUrl,CC_CALLBACK_1(MissionWeiXin::Rsp_UserInfo,this),nullptr);->
Rsp_UserInfo()->
m_pJinMissionSink->onWxLoginSuccess(kWxUserInfo);
HNLogonScence.cpp:
onWxLoginSuccess(WxUserInfo kWxUserInfo )

从上面的请求发送流程和响应流程可以看出,微信登录请求在HNLogonScence.cpp中发送,最终响应也在HNLogonScence.cpp处理,其它文件函数在其中起到桥梁的作用,连接java和cpp。

另:
服务器address和Port配置:
proj.android\assets\Script\HNScriptValue.xml
在HNGame.cpp的init()中初始化:
cocos2d::ScriptXMLparse kScriptXml1("Script/HNScriptValue.xml");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值