import 'dart:io'; import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:uuid/uuid.dart'; class IosDeviceInfo { static String _idfa = ""; static String _idfv = ""; static Future iosInit() async { final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); if (Platform.isIOS) { var iosInfo = await deviceInfoPlugin.iosInfo; // 获取idfv if (_idfv.isEmpty) { _idfv = iosInfo.identifierForVendor ?? const Uuid().v4(); } // 获取idfa if (_idfa.isEmpty) { final TrackingStatus status = await AppTrackingTransparency.trackingAuthorizationStatus; if (status == TrackingStatus.notDetermined) { final TrackingStatus newStatus = await AppTrackingTransparency.requestTrackingAuthorization(); if (newStatus == TrackingStatus.authorized) { _idfa = await AppTrackingTransparency.getAdvertisingIdentifier(); } } else if (status == TrackingStatus.authorized) { _idfa = await AppTrackingTransparency.getAdvertisingIdentifier(); } } } } /// 隐私追踪弹窗 Future _appTrackingTransparency() async { final TrackingStatus status = await AppTrackingTransparency.trackingAuthorizationStatus; if (status == TrackingStatus.notDetermined) { await AppTrackingTransparency.requestTrackingAuthorization(); } else if (status == TrackingStatus.authorized) { print(await AppTrackingTransparency.getAdvertisingIdentifier()); } } static String getIdfa() { return _idfa; } static String getIdfv() { return _idfv; } }