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> |         /// <param name="msg"></param> | ||||||
|         private static void OnSDKCallback(string msg) |         private static void OnSDKCallback(string msg) | ||||||
|         { |         { | ||||||
|  |             GuruSDKCallback.RemoveCallback(OnSDKCallback); // 移除回调 | ||||||
|  |              | ||||||
|             //-------- Fetch DMA status and report ----------- |             //-------- Fetch DMA status and report ----------- | ||||||
|             var value = Agent?.GetPurposesValue() ?? ""; |             var value = Agent?.GetPurposesValue() ?? ""; | ||||||
|             GoogleDMAHelper.SetDMAStatus(value, _dmaMapRule, _enableCountryCheck); |             GoogleDMAHelper.SetDMAStatus(value, _dmaMapRule, _enableCountryCheck); | ||||||
|              |              | ||||||
|  |             int status = StatusCode.UNKNOWN; | ||||||
|             //------- message send to unity ---------- |             //------- message send to unity ---------- | ||||||
|             Debug.Log($"{Tag} get callback msg:\n{msg}"); |             Debug.Log($"{Tag} get callback msg:\n{msg}"); | ||||||
|             try |             try | ||||||
|  | @ -87,37 +90,24 @@ namespace Guru | ||||||
|                 var data = JsonConvert.DeserializeObject<JObject>(msg); |                 var data = JsonConvert.DeserializeObject<JObject>(msg); | ||||||
|                 if (data != null && data.TryGetValue("action", out var jAtc)) |                 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; |                                 int.TryParse(jStatus.ToString(), out status); | ||||||
|                                 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; |  | ||||||
|                             } |                             } | ||||||
|  |                             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) |             catch (Exception ex) | ||||||
|  | @ -126,7 +116,11 @@ namespace Guru | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             Debug.LogError($"{Tag} Parse callback Error"); |             Debug.LogError($"{Tag} Parse callback Error"); | ||||||
|             onCompleteHandler?.Invoke(StatusCode.UNKNOWN); |             if (onCompleteHandler != null) | ||||||
|  |             { | ||||||
|  |                 onCompleteHandler.Invoke(status); | ||||||
|  |                 onCompleteHandler = null; | ||||||
|  |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  |  | ||||||
|  | @ -40,6 +40,11 @@ namespace Guru | ||||||
|             return ins; |             return ins; | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  |         private void SubCallback(Action<string> callback) | ||||||
|  |         { | ||||||
|  |             msgCallback -= callback; | ||||||
|  |         } | ||||||
|  |          | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// External 回调参数 |         /// External 回调参数 | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  | @ -66,6 +71,15 @@ namespace Guru | ||||||
|         { |         { | ||||||
|             Instance.msgCallback -= callback; |             Instance.msgCallback -= callback; | ||||||
|         } |         } | ||||||
|  |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// 添加回调 | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="callback"></param> | ||||||
|  |         public static void RemoveCallback(Action<string> callback) | ||||||
|  |         { | ||||||
|  |             Instance.SubCallback(callback); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue