ATTAuth.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using UnityEngine;
  3. namespace GFGGame.Launcher
  4. {
  5. public class ATTAuth : MonoBehaviour
  6. {
  7. [System.Runtime.InteropServices.DllImport("__Internal")]
  8. private static extern void _RequestTrackingAuthorizationWithCompletionHandler();
  9. [System.Runtime.InteropServices.DllImport("__Internal")]
  10. private static extern int _GetAppTrackingAuthorizationStatus();
  11. private static Action<int> getAuthorizationStatusAction;
  12. /// <summary>
  13. /// 请求ATT授权窗口
  14. /// </summary>
  15. /// <param name="getResult"></param>
  16. public static void RequestTrackingAuthorizationWithCompletionHandler(Action<int> getResult)
  17. {
  18. //-1:"ios版本低于14"
  19. //0: "ATT 授权状态待定";
  20. //1: "ATT 授权状态受限";
  21. //2: "ATT 已拒绝";
  22. //3: "ATT 已授权";
  23. Debug.Log("RequestTrackingAuthorizationWithCompletionHandler");
  24. getAuthorizationStatusAction = getResult;
  25. _RequestTrackingAuthorizationWithCompletionHandler();
  26. }
  27. /// <summary>
  28. /// 获取当前ATT授权状态
  29. /// </summary>
  30. /// <returns></returns>
  31. public static int GetAppTrackingAuthorizationStatus()
  32. {
  33. return _GetAppTrackingAuthorizationStatus();
  34. }
  35. public void GetAuthorizationStatus(string status)
  36. {
  37. getAuthorizationStatusAction?.Invoke(int.Parse(status));
  38. }
  39. }
  40. }