IOS app启动时弹出是否跟踪app

效果是这样的(更新一下,有朋友问为什么现在弹不出弹窗,因为ios15之后,相关机制变了,所以要更改一下代码):


在App启动的时候,appdelegate.m中导入头文件:

#import 

#import 

然后再启动代码块中加入:

//更新前

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    //跟踪

    if(@available(iOS14,*)){

        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

          }];

    }else{

        [[ASIdentifierManager sharedManager]isAdvertisingTrackingEnabled];

    }

}

//更新后

- (void)applicationDidBecomeActive:(UIApplication *)application {   

   //是否允许跟踪权限必须写在DidBecomeActive周期中,不然无法弹出权限弹窗 

   if (@available(iOS 14, *)) {        

         [ATTrackingManager                requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {                     

         }];    

    } else {        

       [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled];    

   }

}

说白了更新后就是把代码从didFinishLaunching移到了applicationDidBecomeActive,这样就能在ios15上弹出弹窗了,苹果也不会因为这个拒审了

最后记得添加权限:

key:

Privacy - Tracking Usage Description

value:

请允许获取并使用您的活动跟踪,以便于向您进行个性化推送服务,从而减少无关服务对您造成的干扰

你可能感兴趣的:(IOS app启动时弹出是否跟踪app)