fix(sdk): 修复登录数据处理和账户绑定功能

- 修改Android端登录数据结构,统一使用loginData字段
- 添加JSON异常处理机制,避免解析错误导致崩溃
- 修复Unity端登录数据解析路径,从respObj.result改为loginData
- 在账户绑定成功后更新账户信息,添加渠道标识
- 优化链接账户回调处理,支持登录数据的完整传递
- 修复代码格式和字符串拼接问题
This commit is contained in:
2025-12-31 17:15:25 +08:00
parent 053bdf70a2
commit b0cce65e54
2 changed files with 49 additions and 15 deletions

View File

@@ -44,6 +44,8 @@ import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import kotlinx.serialization.json.Json;
public class SDKManager {
private final static Handler handler = new Handler(Looper.getMainLooper());
@@ -78,9 +80,7 @@ public class SDKManager {
if (i == 0) {
JSONObject serverResponse = new JSONObject(s);
JSONObject userInfo = serverResponse.getJSONObject("result");
JSONObject userInfoResult = new JSONObject();
userInfoResult.put("result", userInfo);
result.put("respObj", userInfoResult);
result.put("loginData", userInfo );
} else {
result.put("errStr", s);
}
@@ -163,7 +163,7 @@ public class SDKManager {
private static SnsInfo tmpSnsInfo;
public static void LinkAccount(String type, String userId)
{
{
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null)
{
@@ -171,10 +171,22 @@ public class SDKManager {
SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
if(bindcode == SDKCallBack.CODE_SUCCESS)
{
String msg = "{\"code\":0, \"userId\": 0}";
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
try {
JSONObject result = new JSONObject();
result.put("code", bindcode);
result.put("userId", userId);
JSONObject serverResponse = new JSONObject(bindmsg);
JSONObject userInfo = serverResponse.getJSONObject("result");
result.put("loginData", userInfo);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, result.toString());
} catch (JSONException e) {
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.LINKACCOUT_CALLBACK_FUNCTION_NAME, msg);
}
}
else if(bindcode == 1)
else if(bindcode == SDKCallBack.CODE_FAILED)
{
try
{