You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编程启用NSCrossWebsiteTrackingUsageDescription或弹窗申请用户授权

iOS 跨网站跟踪权限启用方案

前置确认

你已经在Info.plist中完成了NSCrossWebsiteTrackingUsageDescription字段配置,系统设置页已生成对应选项,该字段是弹出授权弹窗的必要前提,无法省略。

操作步骤

  • 导入权限依赖框架
    Swift 项目在调用文件头部添加:
    import AppTrackingTransparency
    Objective-C 项目在调用文件头部添加:
    #import <AppTrackingTransparency/AppTrackingTransparency.h>
  • 在合适的业务时机调用权限请求接口(建议选择用户能感知到跨站跟踪价值的场景触发,不要在App冷启动时直接弹出)
    Swift 代码示例:
    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { status in
            switch status {
            case .authorized:
                // 用户已同意授权,系统设置页开关自动变为enabled状态
                print("跨网站跟踪权限已启用")
            case .denied:
                // 用户已拒绝授权,可自行弹窗引导用户前往系统设置手动开启
                print("跨网站跟踪权限已被用户拒绝")
            case .restricted:
                // 设备受家长控制等限制,无法获取该权限
                break
            case .notDetermined:
                // 用户尚未做出选择
                break
            @unknown default:
                break
            }
        }
    }
    
    Objective-C 代码示例:
    if (@available(iOS 14.0, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                NSLog(@"跨网站跟踪权限已启用");
            }
        }];
    }
    

注意事项

  • 你无法直接通过代码将该权限设置为enabled状态,所有权限状态变更必须由用户主动操作:要么在系统弹出的授权窗中选择允许,要么手动前往系统设置页修改开关状态
  • 如果用户之前已经拒绝过该权限,再次调用请求接口不会重复弹出系统授权窗,此时你可以自定义提示引导用户跳转系统设置修改
  • 仅iOS 14及以上系统支持该权限接口,低于iOS 14的系统默认允许跨网站跟踪,无需申请权限

内容的提问来源于stack exchange,提问作者Anton_Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 12:42:03