美文网首页iOS开发技能iOS收藏
iOS 获取idfa,设备信息获取适配

iOS 获取idfa,设备信息获取适配

作者: 万年老参 | 来源:发表于2021-08-10 15:01 被阅读0次

    idfa:广告唯一标识,不同app对同一台设备的idfa是固定且一致的。(特殊情况下会重新生成,比如在系统设置里关闭后重新打开idfa允许)

    iOS14之前和之后获取权限的方法不同,

    iOS14.5之前,苹果默认用户允许app访问追踪权限,之后需要明确弹框进行权限申请。

    iphone设置里面和idfa有关的两个地方:
    1,系统-隐私-跟踪,这里若关闭“允许app请求跟踪“则所有app请求权限时都不会弹框,直接会回调用户没有开启权限。
    2,系统-对应app-“允许跟踪”开关

    iOS14系统之前获取idfa

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

    2.获取广告标识

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

    iOS14系统之后获取idfa

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

    <key>NSUserTrackingUsageDescription</key>
    <string>此标识符将用于向您推荐个性化广告。</string>
    

    2.导入框架

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

    3.获取广告标识

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

    相关文章

      网友评论

        本文标题:iOS 获取idfa,设备信息获取适配

        本文链接:https://www.haomeiwen.com/subject/brlcbltx.html