了解如何使用全新的 declared age range api 在你的 app 中提供适龄体验。我们将介绍家长如何允许孩子与 app 共享年龄范围,以确保在保护隐私的情况下提供安全体验。我们还将探索此框架如何帮助你根据用户的年龄来定制你的 app 内容和功能,并展示如何实施年龄限制、理解缓存机制并尊重用户隐私,同时营造更安全、更有趣的体验。

视频封面
视频地址

此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com

在你的应用中提供适龄体验:Declared Age Range API 详解

引言

随着数字世界日益复杂,如何为不同年龄段的用户提供安全、合适的应用体验成为开发者面临的重要课题。在 iOS 26 中,苹果推出了 Declared Age Range API,帮助开发者在保护用户隐私的前提下,根据年龄范围定制应用功能和内容。本文将详细介绍这一新框架的工作原理、实现方法以及相关隐私保护机制。

儿童上网安全的背景

苹果始终致力于创造既能丰富用户生活又能保障安全的数字产品。2025年2月发布的《帮助保护儿童上网安全》白皮书强调了持续保护儿童免受网络威胁的重要性。2025年3月,苹果推出了简化的儿童设置流程,并在iOS 26中进一步优化:

  • 儿童账户年龄错误可轻松更正
  • App Store全球年龄评级细化至五个类别(4+、9+、13+、16+、18+)
  • 提供更详细的产品页面信息,帮助家长了解内容适合度

这些改进为Declared Age Range API的推出奠定了基础。

Declared Age Range框架解析

Declared Age Range框架允许应用在不获取具体生日的前提下,了解用户的年龄区间范围。其核心特性包括:

隐私优先设计

API仅返回由两个数字组成的年龄范围区间,而非具体生日。例如:

  • 14岁用户可以声明”13-15岁”区间
  • 9岁用户可以分享”12岁或以下”
  • 42岁用户可以分享”16岁或以上”

框架针对儿童和青少年设计,设置了地区最高年龄限制(通常为该地区成人年龄)。

灵活的年龄区间设置

应用可以根据自身需求:

  • 指定最多三个不同年龄节点
  • 产生四个不同区间(每个区间至少持续两年)
  • 自定义适合应用的年龄划分标准

例如,照片分享应用可能关注13岁和16岁两个关键年龄节点。

家长控制选项

家长可通过多种途径管理孩子的年龄分享设置:

  1. 家庭与设置 > 选择孩子 > Apple账户与密码 > 应用年龄范围
  2. 孩子设备上的Apple账户与设置 > 个人信息 > 应用年龄范围

API提供三种分享模式:

  • “始终分享”:自动返回年龄范围,有更新时显示通知
  • “询问首先”:每次请求时显示分享提示
  • “从不分享”:始终拒绝请求

隐私保护机制

为防止生日信息泄露,框架采取了特殊措施:

  1. 在”询问首先”模式下,默认只在原始响应周年纪念日显示提示
  2. 在”始终分享”模式下,默认只在周年纪念日透露新年龄信息

例如,孩子年满13岁后,API在周年日前仍会返回”12岁或以下”,直到周年日才会更新。

用户也可手动清除缓存,在设置中选择特定应用并再次点击”分享年龄范围”,强制下次请求时获得更新后的响应。

代码实现示例

以下是在SwiftUI应用中使用Declared Age Range API的完整步骤:

1. 添加框架能力

在项目目标的Signing and Capabilities标签页添加Declared Age Range能力。

2. 请求年龄范围

import SwiftUI
import DeclaredAgeRange

struct LandmarkDetail: View {
    @State var photoSharingEnabled = false
    @Environment(\.requestAgeRange) var requestAgeRange
    
    var body: some View {
        ScrollView {
            Button("Share Photos") {}
                .disabled(!photoSharingEnabled)
        }
        .task {
            await requestAgeRangeHelper()
        }
    }

    func requestAgeRangeHelper() async {
        do {
            let ageRangeResponse = try await requestAgeRange(ageGates: 16)
            switch ageRangeResponse {
            case let .sharing(range):
                if let lowerBound = range.lowerBound, lowerBound >= 16 {
                    photoSharingEnabled = true
                }
                print(range.ageRangeDeclaration)
            case .declinedSharing:
                print("拒绝分享")
            }
        } catch AgeRangeService.Error.invalidRequest {
            print("处理无效请求错误")
        } catch AgeRangeService.Error.notAvailable {
            print("处理不可用错误")
        } catch {
            print("未处理错误: \(error)")
        }
    }
}

3. 处理响应和错误

API可能返回两种响应:

  • .sharing(range):包含年龄区间和声明类型(guardianDeclared或selfDeclared)
  • .declinedSharing:用户拒绝分享

错误类型包括:

  • invalidRequest:请求格式错误
  • notAvailable:设备配置不支持

4. 检查家长控制

if range.activeParentalControls.contains(.communicationLimits) {
    print("通讯限制已启用")
}

API还会返回家长配置的其他控制项信息。

其他儿童安全工具

除了Declared Age Range API,开发者还可以利用以下工具增强儿童安全:

  • Sensitive Content Analysis API:检测图片视频中的裸露内容
  • Screen Time框架:提供设备使用监管功能
  • Family Controls:为应用添加家长控制功能

结论

Declared Age Range API为开发者提供了一种隐私友好的方式,在不获取具体生日的前提下,根据用户年龄范围定制应用体验。通过合理的年龄区间划分、灵活的家长控制选项和严格的隐私保护机制,该框架帮助开发者在保护儿童安全与尊重用户隐私之间取得平衡。开发者应结合应用实际需求,在适当位置添加适龄体验,为用户提供更安全、更有趣的数字产品。

相关资源

相关视频

使用 PermissionKit 增强儿童安全保护

文档

DeclaredAgeRange