美文网首页
关于iOS14+ AppTrackingTransparency

关于iOS14+ AppTrackingTransparency

作者: 辉大大大 | 来源:发表于2023-04-03 11:56 被阅读0次

1.首先由于iOS14+后 默认需要主动调用AppTrackingTransparency权限、否则会被苹果审核打回

AppTrackingTransparency权限被拒截图

2、那我们来说一下如何使用

1>在info.plist中添加NSUserTrackingUsageDescription声明

2>首先依赖的库是

    #import <AppTrackingTransparency/AppTrackingTransparency.h>

3>其次在- (void)applicationDidBecomeActive:(UIApplication*)application 代理方法中调用广告权限(当然也可以放到其他位置,例如didFinishLaunchingWithOptions)

 // 授权广告权限

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        if(@available(iOS14, *)) {

            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

                if (status == ATTrackingManagerAuthorizationStatusAuthorized || status == ATTrackingManagerAuthorizationStatusDenied || status == ATTrackingManagerAuthorizationStatusRestricted ) {

//                    self.trackingTag = self.trackingTag + 1; // 启动只接受一次ATTrackingManager回调

//                   调用自己或者第三方激活接口

                }

            }];

        }else{

//            self.trackingTag = self.trackingTag + 1; // 启动只接受一次ATTrackingManager回调

//           调用自己或者第三方激活接口

        }

    });

Tips:这里需要说明一下:

*当前授权状态。如果广告授权未弹出还没有提示用户批准访问,则返回值为

* ATTrackingManagerAuthorizationStatusNotDetermined,或者ATTrackingManagerAuthorizationStatusRestricted如果这个值被管理。

*广告授权弹出用户被提示,返回值将是ATTrackingManagerAuthorizationStatusDenied(拒绝)或ATTrackingManagerAuthorizationStatusAuthorized(同意)。

ATTrackingManagerAuthorizationStatusRestricted 这个枚举值猜测是apple 广告授权弹出异常的时候会返回此值,为了不影响激活统计 也将此情况下调用激活

相关文章

网友评论

      本文标题:关于iOS14+ AppTrackingTransparency

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