platform_ios_info.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import 'dart:io';
  2. import 'package:app_tracking_transparency/app_tracking_transparency.dart';
  3. import 'package:device_info_plus/device_info_plus.dart';
  4. import '../widget/platform_util.dart';
  5. import 'atmob_platform_info.dart';
  6. class PlatformIosInfo {
  7. static Future<void> init() async {
  8. if (PlatformUtil.isIOS) {
  9. DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  10. IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
  11. atmobPlatformInfo
  12. .setModel(iosInfo.model)
  13. .setIdfv(iosInfo.identifierForVendor);
  14. final TrackingStatus status =
  15. await AppTrackingTransparency.trackingAuthorizationStatus;
  16. if (status == TrackingStatus.notDetermined) {
  17. final TrackingStatus newStatus =
  18. await AppTrackingTransparency.requestTrackingAuthorization();
  19. if (newStatus == TrackingStatus.authorized) {
  20. atmobPlatformInfo.setIdfa(
  21. await AppTrackingTransparency.getAdvertisingIdentifier());
  22. }
  23. } else if (status == TrackingStatus.authorized) {
  24. atmobPlatformInfo
  25. .setIdfa(await AppTrackingTransparency.getAdvertisingIdentifier());
  26. }
  27. }
  28. }
  29. }