ATTAuth.cs 1.5 KB

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