电容年龄范围
询问用户年龄范围的操作系统而不是收集出生日期:Android上的Google Play Age Signals和iOS上的Apple宣布年龄范围. 帮助应用满足年龄保证规则 一次通话.
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用
@capgo/capacitor-age-range在您的电容应用程序中:npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-age-range到我的Capacitor应用上并把它接上。" 代理设置指南 • 妇女 主机磁共振
主要特点
- 一通电话数字 :
requestAgeRange()通过平台 API 返回用户的年龄范围. - 机器人:使用谷歌游戏时代信号库.
- iOS系统: 使用苹果的
DeclaredAgeRange框架. - 隐私友好:该应用程序得到的年龄范围为OS,而不是出生日期.
- 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. 网上不可用(
requestAgeRange()- 扔下来).
为什么是老年控制者?
一个统一的, 免费,以及 轻型 年龄范围插件 :
- 跨平台 - Android和iOS的单一API
- 保护隐私 - 没有收集出生日期,只有年龄范围
- 监管遵守情况 - 满足COPPA、KOSA和区域适龄设计要求
- 自动映射 - 按统一格式绘制的平台专用答复
- 现代软件包管理 - 支持Swift软件包管理器(SPM)和CocoaPods
- 零依赖关系 - SDKs平台外的最小足迹
文档
这里有最完整的医生: https://capgo.app/docs/plugins/age-range/ (中文(简体) )
兼容性
| 插件版本 | 电容兼容性 | 维护 |
|---|---|---|
| 联合国 | 联合国 | ✅ |
| 页:1 | 页:1 | 应要求 |
| 页:1 | 页:1 | ❌ |
| 页:1 | 页:1 | ❌ |
说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.
安装
您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-age-range` plugin in my project.
如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capgo/capacitor-age-range
npx cap sync
iOS 设置
所需资源
- iOS 15+ (插件编译和运行,返回)
NOT_AVAILABLE(旧版本) - iOS 26+,用于实际年龄范围功能(DeclaredAgeRange框架)
- Xcode 26+ 代码
应享权利
requestAgeRange() 需要这种能力 在 iOS 应用程序中签名。编辑两个文件,然后在 App ID 上启用.
1. 文件 ios/App/App/App.entitlements
粘贴这两行 内部 现有 <dict> (保存您已有的密钥, 例如 ) aps-environment:
<key>com.apple.developer.declared-age-range</key>
<true/>
如果该文件不存在, 请创建 ios/App/App/App.entitlements 包含此确切内容 :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.declared-age-range</key>
<true/>
</dict>
</plist>
2. 文件 ios/App/App.xcodeproj/project.pbxproj
应享权利文件被忽略,直到此行打开 应用目标 页:1 调试和发布。查找两个 App 目标的文件 buildSettings 包含 PRODUCT_BUNDLE_IDENTIFIER (不是项目级别配置)并添加:
CODE_SIGN_ENTITLEMENTS = App/App.entitlements;
它应坐在其他签名钥匙旁边,例如:
CODE_SIGN_ENTITLEMENTS = App/App.entitlements;
CODE_SIGN_STYLE = Automatic;
Xcode UI 执行相同的两个文件: 目标 → 签名能力( C) → + 能力 → 宣布的年龄范围。 。 。 .
3. 苹果开发者 App ID
- 打开 标识符 启动 宣布的年龄范围。 。 。 .
- 重新生成供给配置文件,然后再次存档.
没有步骤1至步骤3,适用 requestAgeRange() 失败。 这个权利是 没有 控制App Store在澳大利亚,巴西和新加坡的18+App下载,Apple从上市年龄评级自动履行成人确认.
装运前验证 :
npx @capgo/cli@latest build prescan
检查ID是 ios/entitlements-declared-age-range。 。 。 .
如何运作
在iOS上, requestAgeRange() 提供系统对话框,让用户(或他们的监护人通过家庭共享)宣布他们的年龄范围。 这个 ageGates 选项控制对话框中显示的年龄边界(默认值 : [13, 16, 18]) (中文(简体) ).
Android 设置
所需资源
- Android API 24+ (中文(简体) )
- 已安装并更新 Google 游戏存储器
如何运作
Android 上的插件查询 谷歌游戏时代信号 API 在背景中,不显示用户提示。 Play Store从他们的Google账户中确定用户的年龄验证状态.
不需要额外许可或明显更改.
网页
不获支持。 网络执行抛出 'AgeRange does not have web implementation'。 。 。 .
API 密码
跨平台年龄范围检测插件.
在Android上使用Google Play Age Signals,在iOS上使用Apple宣布的AgeRange.
请求AgeRange(...)
requestAgeRange(options?: RequestAgeRangeOptions | undefined) => Promise<AgeRangeResult>
请求用户的年龄范围 .
在Android上:查询Google Play Age Signals API(没有用户提示). 在iOS上:呈现系统"宣布年龄"对话框(需要iOS 26.2+).
| 参数 | 类型 | 说明 |
|---|---|---|
options | RequestAgeRangeOptions | - 年龄范围请求的配置 |
回返情况: Promise<AgeRangeResult>
自: 8.0.0 (单位:千美元)
获取 PluginVersion ()
getPluginVersion() => Promise<{ version: string; }>
获取本地 Capacitor 插件版本 .
回返情况: Promise<{ version: string; }>
自: 8.0.0 (单位:千美元)
接口
年龄范围
年龄范围要求的结果.
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
status | AgeRangeStatus | 年龄范围请求的结果状态. | 8.0.0 (单位:千美元) |
ageLower | number | 包含用户年龄范围的下限 。 有年龄数据时在场. | 8.0.0 (单位:千美元) |
ageUpper | number | 包含用户年龄范围的上限. 如果使用者处于最高年龄段(如18岁以上),则可能缺席. | 8.0.0 (单位:千美元) |
declarationSource | DeclarationSource | 如何宣布/确定年龄。 在iOS上:"SELF DECLARED"或"Guardian DECLARED". 在Android上:"SUPERVISED"(由保镖管理)或"VERIFIED"(Google-verified 18+). | 8.0.0 (单位:千美元) |
androidUserStatus | AndroidUserStatus | 仅限机器人 用户的Google Play验证状态. | 8.0.0 (单位:千美元) |
mostRecentApprovalDate | string | 仅限机器人 最近监护人批准的变更生效日期. | 8.0.0 (单位:千美元) |
installId | string | 仅限机器人 在 Google Play 中安装受监管安装的标识符 . | 8.0.0 (单位:千美元) |
请求年龄范围选项
年龄范围请求的选项 .
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
ageGates | number[] | 申请的年龄门槛。 在iOS上:这些被传递给 requestAgeRange(ageGates:) 作为系统对话框中显示的年龄界限。 常见值: [13, 16, 18]. 在Android上:这个参数被忽略了(Play Age Signals返回预定义的范围:0-12,13-15,16-17,18+). | [13, 16, 18] | 8.0.0 (单位:千美元) |
类型异名
年龄范围状况
年龄范围请求的顶级状态.
'SHARING' | 'DECLINED_SHARING' | 'NOT_AVAILABLE' | 'ERROR'
宣言来源
年龄范围是如何宣布或确定的.
'SELF_DECLARED' | 'GUARDIAN_DECLARED' | 'VERIFIED' | 'UNKNOWN'
Android 用户状况
Android特有Google Play用户状态值.
'VERIFIED' | 'SUPERVISED' | 'SUPERVISED_APPROVAL_PENDING' | 'SUPERVISED_APPROVAL_DENIED' | 'UNKNOWN' | 'EMPTY'
使用量
import { AgeRange } from '@capgo/capacitor-age-range';
// Request age range with default gates (13, 16, 18)
const result = await AgeRange.requestAgeRange();
switch (result.status) {
case 'SHARING':
console.log('Age range:', result.ageLower, '-', result.ageUpper);
console.log('Source:', result.declarationSource);
break;
case 'DECLINED_SHARING':
console.log('User declined to share age');
break;
case 'NOT_AVAILABLE':
console.log('Age range API not available');
break;
case 'ERROR':
console.log('Error occurred');
break;
}
// Custom age gates (iOS only)
const result2 = await AgeRange.requestAgeRange({ ageGates: [13, 18] });
平台反应绘图
Android (谷歌游戏时代信号)
| Android 用户状态 | − 状况 | ● 声明来源 |
|---|---|---|
| 已证实 | 分享 | 已证实 |
| 超级 | 分享 | 瓜地安人 解开 |
| 高级 辅助 结束 | 分享 | 瓜地安人 解开 |
| 高级 APPROVAL 拒绝 | 分享 | 瓜地安人 解开 |
| 未知/ 紧急 | 解锁后共享 | - 说吧 |
iOS( 宣布年龄范围)
| iOS 反应 | − 状况 | ● 声明来源 |
|---|---|---|
| 分享(自行宣布) | 分享 | 自行决定 |
| 分享(监护人宣布) | 分享 | 瓜地安人 解开 |
| . 下行共享 | 解锁后共享 | - 说吧 |