主题
Skip to content
模块名:
GameHelper.AAP
1. 隐私初始化 - 默认方案
请注意,在隐私初始化完成前,相关元素需要隐藏。
1.1 初始化前的元素隐藏 & 挂载设置
1.1.1 隐私默认隐藏
在隐私初始化完成前,SDK相关合规元素以及计入游戏的按钮均默认需要隐藏。

对于版号、八句箴言这两种隐私内容,需自行填入并摆放到合适位置。
可与对接人员沟通,决定其默认展示还是动态展示
1.1.2 引入适龄提示预制件
将resources\SDKResources\UnderageLimit\prefabs\UnderageLimitBtn.prefab拖入到场景的Canvas。

由于该预制需要在SDK初始化完成后才可执行逻辑,请保持默认为关闭状态,等待SDK 隐私 初始化成功后再打开,否则游戏启动时会报错。建议将其放入第3点的动态启动项目进行统一开关。
可根据游戏启动页的设计,自行更改预制件的位置。因合规需要,请勿修改预制件的大小。
请根据游戏的适龄信息,更改场景中预制件的Age属性,并保存。
组件将在runtime自动显示对应年龄的图片和信息。 默认为8岁。

1.1.3 绑定隐私政策、用户协议功能、设计隐私交互逻辑
SDK提供了隐私政策和用户协议的显示功能,游戏需自行创建可点击的文本按钮。
在点击事件回调中,添加SDK代码。以下图片仅供示例:
javascript
/** 自行绑定该方法到隐私政策按钮 */
public aapOpenPrivacy() {
console.log("触发展示隐私政策");
GameHelper.AAP.openLawItems(0);
}
/** 自行绑定该方法到用户协议按钮 */
public aapOpenXieyi() {
console.log("触发展示用户协议");
GameHelper.AAP.openLawItems(1);
}程序应自行设计隐私的同意或拒绝的交互逻辑。一般分为弹窗式和勾选式。请选择适合自己游戏的方式。
请注意,交互UI仅可在隐私初始化后才可显示。
请注意,对于微信渠道而言,SDK将直接拉取微信渠道后台配置的隐私文本。
所以微信渠道只需要放一个按钮即可(例如将下图两个红框当做一个按钮),传参0或1都行
需要对接人员在渠道后台配置好后,点击才能看到文本
示例:
该图中的隐私政策、用户协议按钮需要绑定交互回调
使用checkBox组件,作为隐私弹框的勾选栏目。

1.2 隐私初始化、根据用户同意状态操作合规显示、上报展示
调用GameHelper.AAP.startProcess方法,进行隐私初始化。
【A】请传入一个回调函数,在回调函数中展示合规交互UI,以及开始游戏按钮
【B】回调函数读取一个布尔值。该布尔值代表用户是否已经同意隐私条款。在回调函数中,需根据该布尔值,调整隐私交互逻辑的初始状态。以下提供一个示例思路
false: 展示勾选框,未勾选状态,允许用户勾选,需手动勾选后,点击开始游戏按钮进入游戏
true:展示勾选框,已勾选状态,不允许取消勾选。隔1~2秒后自动进入游戏,用户也可点击开始游戏按钮立刻进入游戏
【C】必须在回调函数中,调用GameHelper.AAP.changeStatus(GameHelper.AAP.Status.SHOW)上报隐私展示。
javascript
GameHelper.AAP.startProcess((_isAgree) => {
console.log("SDK确认当前用户的隐私状态为: ", _isAgree);
// STEP4: 该步骤后,SDK初始化完成, 可展示所有启动页的元素(合规元素等)
// 需要根据从SDK获取到的隐私状态,对合规元素以及其他元素等进行逻辑控制
// 以下对勾选框的控制仅供参考, 请于CP对接同事确认方案
if (_isAgree) {
console.log("显示所有隐私元素, 选择框为冻结状态");
this.aapCheckBox.interactable = false;
this.aapCheckBox.isChecked = true;
this.startGameNode.active = true;
this.aapGroup.active = true;
} else {
console.log("显示所有隐私元素, 选择框为可选状态");
this.aapCheckBox.interactable = true;
this.aapCheckBox.isChecked = false;
this.startGameNode.active = true;
this.aapGroup.active = true;
}
// STEP5: 必须上报隐私元素展示给SDK
GameHelper.AAP.changeStatus(GameHelper.AAP.Status.SHOW);
console.log("执行其他业务逻辑");
});1.3 在最后时机上报用户同意拒绝状态
在执行“隐私同意并进入游戏”或者“隐私拒绝并退出游戏”这种最后关头的时机,必须上报隐私的最终状态给SDK。请在对应模块的第一行代码进行上报。
同意:
GameHelper.AAP.changeStatus(GameHelper.AAP.Status.AGREE)拒绝:
GameHelper.AAP.changeStatus(GameHelper.AAP.Status.DISAGREE)
最后时机意味着用户确认好状态后准备进入游戏的那一瞬间。请勿在用户取消或选中勾选框时上报,只可在最后关头一锤定音,否则会造成用户隐私状态异常和潜在违规风险。
以下为开始游戏按钮的代码示例。
请自行设计用户拒绝隐私协议,但点击了进入游戏的情况。例如不允许点击开始游戏,或直接退出游戏。
javascript
public startGame() {
// STEP6: 必须上报隐私的最终状态给SDK
if (this.aapCheckBox.isChecked) {
// 这里是《最后关头》执行的代码, 才允许执行AAP的改变同意/拒绝状态。《不能》在勾选或取消勾选时上报
console.log("最终上报用户隐私状态: ", this.aapCheckBox.isChecked);
GameHelper.AAP.changeStatus(GameHelper.AAP.Status.AGREE);
} else {
// 例子1:不允许未勾选状态下点击进入游戏
return;
// 例子2:进行弹窗挽留
// return console.log("进行提示等操作, 告诉用户必须要勾选才可进入游戏");
// 例子3:退出游戏
// GameHelper.AAP.changeStatus(GameHelper.AAP.Status.DISAGREE);
// GameHelper.CCComFun.exitGame();
}
// 执行业务其他最后关头的代码
console.log("执行其他最后关头的代码");
director.loadScene("DEMO_Home");
}2. 隐私初始化 - 微信官方弹框方案
SDK默认不使用微信官方的隐私弹框组件,如需使用微信官方的隐私弹框,请使用本方案。
本方案无需游戏业务处理隐私弹框元素,流程大大简化,但适龄信息、软著版号、八字真言等请在游戏启动的合适位置展示

调用GameHelper.AAP.startProcess方法,进行隐私初始化。
【A】请传入一个回调函数,在回调函数中展示合规交互UI,以及开始游戏按钮
【B】请第二个参数传入对象{isWXOfficialPrivacy: true},
【C】回调函数读取一个布尔值。该布尔值代表用户是否已经同意隐私条款。在回调函数中,需根据该布尔值,调整游戏逻辑。以下提供一个示例思路
false: 退出游戏
true:进入游戏
javascript
GameHelper.AAP.startProcess((_isAgree) => {
console.log("SDK确认当前用户的隐私状态为: ", _isAgree);
if (_isAgree) {
console.log("用户通同意了/之前同意过隐私,业务进入游戏");
} else {
console.log("用户拒绝了隐私,业务游戏自定操作(比如退出游戏)");
}
console.log("执行其他业务逻辑");
}, {isWXOfficialPrivacy: true});点我快速对接



›
‹