iOSiOS常用很常

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

2021-04-28  本文已影响0人  本客

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

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

#import <AdSupport/AdSupport.h>

#import <AppTrackingTransparency/AppTrackingTransparency.h>

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

//更新前

- (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:

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

上一篇下一篇

猜你喜欢

热点阅读