iOS10~最新系统适配相关ios基础iOS开发

iOS开发 ios14系统广告标识idfa获取适配

2020-07-03  本文已影响0人  夜凉听风雨

iOS14系统之前获取idfa

1.先导入框架#import <AdSupport/ASIdentifierManager.h>

2.获取广告标识

// 判断在设置-隐私里用户是否打开了广告跟踪
        if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
            NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
            NSLog(@"%@",idfa);
        } else {
            NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
        }

iOS14及以上系统 获取广告标识idfa

苹果官方文档

iOS14以上系统,需要先请求跟踪权限,用户同意后才能获取到广告标识。

1.在info.plist文件里添加跟踪权限请求描述文字

注意:该权限只有xcode12及以上版本才有,现在大家只能去下载xcode12 BETA版本的来测试使用了。


image.png

2.导入框架

#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/ASIdentifierManager.h>

3.获取idfa

if (@available(iOS 14, *)) {
        // iOS14及以上版本需要先请求权限
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            // 获取到权限后,依然使用老方法获取idfa
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                NSLog(@"%@",idfa);
            }
        }];
    } else {
        // iOS14以下版本依然使用老方法
        // 判断在设置-隐私里用户是否打开了广告跟踪
        if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
            NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
            NSLog(@"%@",idfa);
        } else {
            NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读