美文网首页iOSiOS常用很常
IOS app启动时弹出是否跟踪app

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

作者: 本客 | 来源:发表于2021-04-28 09:32 被阅读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:

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

    相关文章

      网友评论

        本文标题:IOS app启动时弹出是否跟踪app

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