| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // IDFAManager.swift
- // sunoAi
- //
- // Created by leon on 2024/4/9.
- //
- import Foundation
- import AppTrackingTransparency
- import AdSupport
- import Flutter
- class IDFAManager{
-
- static func getIDFA(call: FlutterMethodCall, result: @escaping FlutterResult) {
-
- if #available(iOS 14.0, *){//ios14以上系统 请求用户授权
-
- ATTrackingManager.requestTrackingAuthorization { status in
- switch status {
- case .authorized:
- let idfa = ASIdentifierManager.shared().advertisingIdentifier
- DebugPrint("IDFA 用户同意了授权: \(idfa.uuidString)")
- initGravityEngineSDK(call: call, result: result, idfa: idfa.uuidString)
- case .denied:
- DebugPrint("IDFA 用户拒绝了授权")
- initGravityEngineSDK(call: call, result: result, idfa: "")
- case .restricted:
- DebugPrint("IDFA 应用无法请求授权,可能由于限制")
- initGravityEngineSDK(call: call, result: result, idfa: "")
- case .notDetermined:
- DebugPrint("IDFA 用户尚未做出选择")
- initGravityEngineSDK(call: call, result: result, idfa: "")
- @unknown default:
- break
- }
- }
-
- }else{//ios14以下系统 请求用户授权
- if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
- let idfa = ASIdentifierManager.shared().advertisingIdentifier
- DebugPrint("ios14以下系统 IDFA 用户同意了授权: \(idfa)")
- initGravityEngineSDK(call: call, result: result, idfa: idfa.uuidString)
- } else {
- DebugPrint("ios14以下系统 IDFA 用户拒绝了授权")
- initGravityEngineSDK(call: call, result: result, idfa: "")
- }
-
- }
-
- }
-
- //四种情况下都在这里初始化引力引擎sdk
- static func initGravityEngineSDK(call: FlutterMethodCall, result: @escaping FlutterResult, idfa:String){
-
- //引力引擎调用的时候需返回主线程加载 否则程序会崩溃
- DispatchQueue.main.async {
- if (GravityEnginePlugin.gravityEngineSDK == nil){
- GravityEnginePlugin.initialize(call: call, result: result, idfa: idfa)
- }
- }
-
- }
-
- }
|