From c2961f8f2d299c049d85adb57e98702615ea5e48 Mon Sep 17 00:00:00 2001 From: gaoxin Date: Tue, 8 Jun 2021 17:27:24 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90sdk=E7=99=BB=E5=BD=95=E3=80=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=A4=E4=B8=AA=E5=8F=82=E6=95=B0extData?= =?UTF-8?q?=20=E5=92=8C=20p=5FappId=20=E8=8D=89=E8=8A=B1=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Common/functions.lua | 10 ++++ .../~Lua/Modules/Login/LoginManager.lua | 53 +++++++++++++------ .../~Lua/Modules/Login/LoginPanel.lua | 2 + 3 files changed, 50 insertions(+), 15 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Common/functions.lua b/Assets/ManagedResources/~Lua/Common/functions.lua index 66e0a8df49..2d1b8c8385 100644 --- a/Assets/ManagedResources/~Lua/Common/functions.lua +++ b/Assets/ManagedResources/~Lua/Common/functions.lua @@ -1934,4 +1934,14 @@ function trim(input) end function GetPlayerRoleSingleConFig() return ConfigManager.GetConfigDataByKey(ConfigName.PlayerRole,"Role",0) +end + +-- 网络url转码 +function decodeURI(s) + s = string.gsub(s, '%%(%x%x)', function(h) return string.char(tonumber(h, 16)) end) + return s +end +function encodeURI(s) + s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end) + return string.gsub(s, " ", "+") end \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua b/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua index 6bbf8c7941..093c6e16a4 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua @@ -42,31 +42,32 @@ function this.Initialize() this.SdkLoginTimeStamp = result[3] AppConst.TokenStr = result[4] AppConst.SdkChannel = result[5] + this.extData = result[6] + this.p_appId = result[7] AppConst.SdkPackageName = AndroidDeviceInfo.Instance:GetPackageName() end -- 判断是否是注册并登录 if this.isRegister then this.isRegister = false - -- 登出之前的账号 - ThinkingAnalyticsManager.Logout() - ThinkingAnalyticsManager.ClearSuperProperties() - -- 开始 - ThinkingAnalyticsManager.SetSuperProperties({ - account = AppConst.isSDK and tostring(AppConst.OpenId) or "", - Bundle_id = AppConst.isSDK and AppConst.SdkPackageName or "", - xx_id = AppConst.isSDK and AppConst.SdkChannel or "", - device_id = AppConst.isSDK and ThinkingAnalyticsManager.GetDeviceId() or "" - }) - ThinkingAnalyticsManager.Track("create_account") + -- 触发创建账户的事件 + this.TrackCreateAccount() + -- 发送登录成功事件 + Game.GlobalEvent:DispatchEvent(GameEvent.LoginSuccess.OnLoginSuccess,result[1]) + else + this.CheckIsRegister(AppConst.OpenId, function(isRegister) + if isRegister then + -- 触发创建账户的事件 + this.TrackCreateAccount() + -- 发送登录成功事件 + Game.GlobalEvent:DispatchEvent(GameEvent.LoginSuccess.OnLoginSuccess,result[1]) + end + end) end - -- 发送登录成功事件 - Game.GlobalEvent:DispatchEvent(GameEvent.LoginSuccess.OnLoginSuccess,result[1]) end SDKMgr.onSwitchAccountCallback = function(resp) Log("onSwitchAccountCallback::"..resp) local result = string.split(resp, "#") - --Util.LogError(debug.traceback("onSwitchAccountCallback:" .. result[1] .. "")) if tonumber(result[1]) == SDK_RESULT.SUCCESS then ThinkingAnalyticsManager.Track("change_account") Game.Restart() @@ -76,7 +77,6 @@ function this.Initialize() SDKMgr.onLogoutCallback = function(resp) Log("onLogoutCallback::"..resp) local result = string.split(resp, "#") - --Util.LogError(debug.traceback("onLogoutCallback:" .. result[1] .. "")) if LoginManager.IsLogin and tonumber(result[1]) == SDK_RESULT.SUCCESS then ThinkingAnalyticsManager.Track("quit_account") Game.Restart() @@ -86,6 +86,27 @@ function this.Initialize() end end +-- 检测是否是新账户 +function this.CheckIsRegister(openId, func) + if func then + func(false) + end +end + +function this.TrackCreateAccount() + -- 登出之前的账号 + ThinkingAnalyticsManager.Logout() + ThinkingAnalyticsManager.ClearSuperProperties() + -- 开始 + ThinkingAnalyticsManager.SetSuperProperties({ + account = AppConst.isSDK and tostring(AppConst.OpenId) or "", + Bundle_id = AppConst.isSDK and AppConst.SdkPackageName or "", + xx_id = AppConst.isSDK and AppConst.SdkChannel or "", + device_id = AppConst.isSDK and ThinkingAnalyticsManager.GetDeviceId() or "" + }) + ThinkingAnalyticsManager.Track("create_account") +end + function this.SaveLoginInfo(user, pw) --[[ PlayerPrefs.SetInt(this.GameName.."LoginWay", this.CurLoginWay); @@ -158,4 +179,6 @@ function this.RequestUser(name, pw, call) end,nil,nil,nil) end + + return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua index 080f6584c7..982bce3f29 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua @@ -593,6 +593,8 @@ function this.RequestHttpLogin() .. "&gid=" .. AppConst.SdkPackageName --LoginManager.pt_gId .. "&version=" .. LoginRoot_PackageVersion .. "&timeStamp="..LoginManager.SdkLoginTimeStamp + .. "&ext="..encodeURI(LoginManager.extData) + .. "&platform_appid="..LoginManager.p_appId else if IsDevelopLogin then -- 开发用