AndroidNativeWrapper.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using UnityEngine;
  4. using System.Collections;
  5. using TapSDK.Core;
  6. using TapSDK.Core.Internal;
  7. using System.Collections.Generic;
  8. using TapSDK.Core.Internal.Log;
  9. namespace TapSDK.Core.Mobile{
  10. internal class AndroidNativeWrapper
  11. {
  12. private static AndroidJavaClass tapTapEventClass;
  13. public static void RegisterDynamicProperties(Func<string> callback)
  14. {
  15. tapTapEventClass = new AndroidJavaClass("com.taptap.sdk.core.TapTapEvent");
  16. AndroidJavaProxy dynamicPropertiesProxy = new TapEventDynamicPropertiesProxy(callback);
  17. tapTapEventClass.CallStatic("registerDynamicProperties", dynamicPropertiesProxy);
  18. }
  19. private class TapEventDynamicPropertiesProxy : AndroidJavaProxy
  20. {
  21. private Func<string> callback;
  22. public TapEventDynamicPropertiesProxy(Func<string> callback)
  23. : base("com.taptap.sdk.core.TapTapEvent$TapEventDynamicProperties")
  24. {
  25. this.callback = callback;
  26. }
  27. public AndroidJavaObject getDynamicProperties()
  28. {
  29. try
  30. {
  31. string json = callback();
  32. if (!string.IsNullOrEmpty(json))
  33. {
  34. return new AndroidJavaObject("org.json.JSONObject", json);
  35. }
  36. }
  37. catch (Exception e)
  38. {
  39. TapLog.Error("Failed to get dynamic properties: " + e.Message);
  40. }
  41. return null;
  42. }
  43. }
  44. }
  45. }