platform_ios_info.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 'package:keyboard/utils/method_chanel_ios_util.dart';
  5. import '../widget/platform_util.dart';
  6. import 'atmob_platform_info.dart';
  7. class PlatformIosInfo {
  8. static Future<void> init() async {
  9. if (PlatformUtil.isIOS) {
  10. DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  11. IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
  12. atmobPlatformInfo
  13. .setModel(iosInfo.model)
  14. .setIdfv(iosInfo.identifierForVendor);
  15. final TrackingStatus status =
  16. await AppTrackingTransparency.trackingAuthorizationStatus;
  17. if (status == TrackingStatus.notDetermined) {
  18. final TrackingStatus newStatus =
  19. await AppTrackingTransparency.requestTrackingAuthorization();
  20. if (newStatus == TrackingStatus.authorized) {
  21. atmobPlatformInfo.setIdfa(
  22. await AppTrackingTransparency.getAdvertisingIdentifier());
  23. MethodChanelIOSUtil.initAttr();
  24. }
  25. } else if (status == TrackingStatus.authorized) {
  26. atmobPlatformInfo
  27. .setIdfa(await AppTrackingTransparency.getAdvertisingIdentifier());
  28. MethodChanelIOSUtil.initAttr();
  29. } else {
  30. MethodChanelIOSUtil.initAttr();
  31. }
  32. }
  33. }
  34. }