LoginAccountLayer.lua
function LoginAccountLayer:InitGUI()
中包含了所有登录界面的按钮点击事件
local data = {} --data为发送的数据
data.type = self._loginType --登录类型
data.username = username --输入框账号
data.password = password --输入框密码
--self._proxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy)
self._proxy:RequestLogin(data) --请求登录
跳转文件AuthProxy.lua
AuthProxy:RequestLogin(data)
--上面的data传递到这里
在这里进行996账号的web-api验证,获取服务端的id ,和 token
local doamin2 = "http://sdkv2.dhsf.xqhuyu.com/api/"
local url_login = "user/login" -- 地址: 登录
local url = doamin2 .. url_login`
HTTPRequestPost(url, httpCB, suffix, header)--通过http请求获取玩家数据
local function httpCB(success, response)
--http请求回调函数
`local jsonData = cjson.decode(response)````
ShowSystemTips("登录成功") global.Facade:sendNotification(global.NoticeTable.AuthLoginSuccess, jsonData) --发送消息
--web服务返回的数据 jsonData
[LUA-print] dump from: [string "scripts/game/proxy/remote/AuthProxy.lua"]:609: in function 'callback'
[LUA-print] - "" = {
[LUA-print] - "code" = 200
[LUA-print] - "data" = {
[LUA-print] - "age_status" = 2
[LUA-print] - "applet_switch" = 0
[LUA-print] - "bind_phone" = 0
[LUA-print] - "chat_service" = ""
[LUA-print] - "expires" = 0
[LUA-print] - "fcm_tips" = ""
[LUA-print] - "is_first_login" = false
[LUA-print] - "is_set_password" = true
[LUA-print] - "mobile" = ""
[LUA-print] - "open_chat_service" = 0
[LUA-print] - "password" = ""
[LUA-print] - "token" = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjIwMjE0MDcwNTQsInB3ZCI6Ijk1MjFJN3NSZm5BVW1zdXZKa0NsTEZPVmliU2hJb3NFSUwxS1FDOUJmSjl1d2lzYVJLTFR3aVEyM0xWZlVQWmJ0RWtkT215R1dUajk5XC9nZ21BIiwiaXNzIjoiYXBpdjIiLCJpYXQiOjE3NDgzNDA0ODQsImV4cCI6MTc0ODk0NTI4NCwicmVmcmVzaF9leHAiOjE3NDg5NDUyODQsImp0aSI6IjBXcHJ6czdpd1J4QlNBOGgiLCJkSWQiOiJiMTU3MWM5YWVkMGEyZWU5ZmU2MzM1NDEzYzhhMjAwZSJ9.iOy2StEjC8rzdThC-A-Rp4rPB46re5B33c3FK0y37Fk"
[LUA-print] - "u_key" = ""
[LUA-print] - "uid" = 2021407054 --此ID为数据里面存的玩家实际账号
[LUA-print] - "user_cancel" = 0
[LUA-print] - "username" = "lxl2121"
[LUA-print] - }
[LUA-print] - "msg" = "操作成功"
[LUA-print] - }
--监听消息
LoginAccountMediator.lua
函数LoginAccountMediator:handleNotification(notification)
监听
参数notification:getName() 是消息ID (AuthLoginSuccess)
notification:getBody() 就是传输过来jsonData
监听到消息后执行
if noticeTable.AuthLoginSuccess == noticeID then
self:OnAuthLoginSuccess(data)
调用
function LoginAccountMediator:OnAuthLoginSuccess(data)
local AuthProxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy)
AuthProxy:SaveLocalData()
-- 进入验证码界面
global.Facade:sendNotification(global.NoticeTable.Layer_Login_OtpPassWord_Open)
发送消息验证码--跳转