| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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<void> 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<void> _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;
- }
- }
|