update: 更新 GuruConsent 适配逻辑和 callback 的适配逻辑
# Conflicts: # Runtime/GuruConsent/Runtime/Script/Consent/GuruConsent.csdeeplink
parent
cef528e5dc
commit
6b26ad26ac
|
|
@ -76,10 +76,13 @@ namespace Guru
|
|||
/// <param name="msg"></param>
|
||||
private static void OnSDKCallback(string msg)
|
||||
{
|
||||
GuruSDKCallback.RemoveCallback(OnSDKCallback); // 移除回调
|
||||
|
||||
//-------- Fetch DMA status and report -----------
|
||||
var value = Agent?.GetPurposesValue() ?? "";
|
||||
GoogleDMAHelper.SetDMAStatus(value, _dmaMapRule, _enableCountryCheck);
|
||||
|
||||
int status = StatusCode.UNKNOWN;
|
||||
//------- message send to unity ----------
|
||||
Debug.Log($"{Tag} get callback msg:\n{msg}");
|
||||
try
|
||||
|
|
@ -87,37 +90,24 @@ namespace Guru
|
|||
var data = JsonConvert.DeserializeObject<JObject>(msg);
|
||||
if (data != null && data.TryGetValue("action", out var jAtc))
|
||||
{
|
||||
if (jAtc.ToString() == "gdpr")
|
||||
if (jAtc.ToString() == "gdpr" && data.TryGetValue("data", out var jData))
|
||||
{
|
||||
if(data.TryGetValue("data", out var jData))
|
||||
if (jData is JObject jObj)
|
||||
{
|
||||
if (jData is JObject jObj)
|
||||
string message = "";
|
||||
if (jObj.TryGetValue("status", out var jStatus))
|
||||
{
|
||||
int status = StatusCode.UNKNOWN;
|
||||
string message = "";
|
||||
if (jObj.TryGetValue("status", out var jStatus))
|
||||
{
|
||||
int.TryParse(jStatus.ToString(), out status);
|
||||
}
|
||||
if (jObj.TryGetValue("msg", out var jMsg))
|
||||
{
|
||||
message = jMsg.ToString();
|
||||
}
|
||||
Debug.Log($"{Tag} --- status: {status} msg: {message}");
|
||||
GuruSDKCallback.RemoveCallback(OnSDKCallback);
|
||||
if (onCompleteHandler != null)
|
||||
{
|
||||
onCompleteHandler.Invoke(status);
|
||||
onCompleteHandler = null;
|
||||
}
|
||||
return;
|
||||
int.TryParse(jStatus.ToString(), out status);
|
||||
}
|
||||
if (jObj.TryGetValue("msg", out var jMsg))
|
||||
{
|
||||
message = jMsg.ToString();
|
||||
}
|
||||
Debug.Log($"{Tag} --- status: {status} msg: {message}");
|
||||
onCompleteHandler?.Invoke(status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -126,7 +116,11 @@ namespace Guru
|
|||
}
|
||||
|
||||
Debug.LogError($"{Tag} Parse callback Error");
|
||||
onCompleteHandler?.Invoke(StatusCode.UNKNOWN);
|
||||
if (onCompleteHandler != null)
|
||||
{
|
||||
onCompleteHandler.Invoke(status);
|
||||
onCompleteHandler = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -40,6 +40,11 @@ namespace Guru
|
|||
return ins;
|
||||
}
|
||||
|
||||
private void SubCallback(Action<string> callback)
|
||||
{
|
||||
msgCallback -= callback;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// External 回调参数
|
||||
/// </summary>
|
||||
|
|
@ -67,5 +72,14 @@ namespace Guru
|
|||
Instance.msgCallback -= callback;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加回调
|
||||
/// </summary>
|
||||
/// <param name="callback"></param>
|
||||
public static void RemoveCallback(Action<string> callback)
|
||||
{
|
||||
Instance.SubCallback(callback);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue