• Swift 请求用户授权以跟踪其跨应用或网站的活动


    步骤1:导入框架

    首先,需要在Swift文件中导入AppTrackingTransparency框架。

    1. import AppTrackingTransparency
    2. import AdSupport

    步骤2:请求跟踪许可

    在适当的地方请求用户的跟踪许可。通常,这个请求会在应用启动时或者在用户执行某些操作(例如,访问应用中的广告相关功能)时发出。

    1. import UIKit
    2. import AppTrackingTransparency
    3. import AdSupport
    4. class ViewController: UIViewController {
    5. override func viewDidLoad() {
    6. super.viewDidLoad()
    7. requestTrackingPermission()
    8. }
    9. func requestTrackingPermission() {
    10. // 检查跟踪授权状态
    11. if #available(iOS 14, *) {
    12. ATTrackingManager.requestTrackingAuthorization { status in
    13. switch status {
    14. case .authorized:
    15. print("用户授权了应用跟踪")
    16. // 可以访问广告标识符 (IDFA)
    17. let idfa = ASIdentifierManager.shared().advertisingIdentifier
    18. print("IDFA: \(idfa)")
    19. case .denied:
    20. print("用户拒绝了应用跟踪")
    21. case .restricted:
    22. print("应用跟踪权限受限")
    23. case .notDetermined:
    24. print("用户尚未决定是否允许应用跟踪")
    25. @unknown default:
    26. print("未知的跟踪授权状态")
    27. }
    28. }
    29. } else {
    30. // iOS 14 以下版本不需要请求跟踪权限
    31. print("iOS 14 以下版本不需要请求跟踪权限")
    32. }
    33. }
    34. }

    步骤3:更新Info.plist文件

    为了让系统在请求跟踪许可时显示自定义说明,需要在Info.plist文件中添加一个键NSUserTrackingUsageDescription,并为其提供描述性文本,说明为什么需要用户允许跟踪。

    在 Info.plist 文件中添加 NSUserTrackingUsageDescription 键的步骤:

    1. 打开 Xcode 项目。

    2. 在项目导航器中找到应用的 Info.plist 文件。这通常位于项目的“Supporting Files”文件夹中。

    3. 右键点击 Info.plist 文件,然后选择“Open As” -> “Source Code”来以源代码形式打开它。

    4. 在  标签内,添加一个新的  和  对来定义 NSUserTrackingUsageDescription

    1. <key>NSUserTrackingUsageDescriptionkey>
    2. <string>为了向您提供更个性化的广告和内容,我们请求您的授权以允许应用跟踪您的活动。string>

    注意:从 iOS 14 开始,如果应用尝试在没有用户授权的情况下跟踪用户,应用可能会受到苹果的审查或限制。因此,确保在请求跟踪授权之前,你已经向用户清楚地解释了为什么你的应用需要这样做。

    说明

    • requestTrackingPermission方法:这个方法会检查当前的跟踪授权状态,如果运行在iOS 14及以上版本,会请求用户的跟踪许可。
    • ATTrackingManager.requestTrackingAuthorization:这是请求用户跟踪许可的核心方法。它会显示系统弹出框,向用户请求授权。
    • ASIdentifierManager.shared().advertisingIdentifier:在用户授权的情况下,可以访问广告标识符 (IDFA)。
    • Info.plist中的NSUserTrackingUsageDescription:这是在请求跟踪许可时显示给用户的说明,必须根据应用的实际用途填写。

    处理不同的授权状态

    requestTrackingPermission方法中,根据用户的选择处理不同的授权状态:

    • .authorized:用户授权了应用跟踪,可以访问IDFA。
    • .denied:用户拒绝了应用跟踪。
    • .restricted:应用跟踪权限受限,通常是由于家长控制或设备配置限制。
    • .notDetermined:用户尚未决定是否允许应用跟踪。
  • 相关阅读:
    神经网络深度学习(二)激活函数
    Java8 中通过 Stream 对列表进行去重的几种方法
    《剑指 Offer (第 2 版)》动态规划部分 JavaScript 题解
    Immutable学习之路----告别传统拷贝
    openpnp - SlotSchultzFeeder source code bugfix
    【Linux】常见指令汇总
    electron27+react18集成搭建跨平台应用|electron窗口多开
    【树上莫队C++】Count on Tree II(欧拉序降维,树链剖分求最近共同祖先LCA)
    前端性能优化的方法
    Cross-Entropy Loss(多分类损失函数)
  • 原文地址:https://blog.csdn.net/zlb824/article/details/139204911