主题
Skip to content 



回调函数读取一个。该布尔值代表用户是否已经同意隐私条款。在回调函数中,需根据该布尔值,调整隐私交互逻辑的初始状态。以下提供一个示例思路
WARNING
💡 模块名:GameHelper.AAP
隐私初始化
请注意,在隐私初始化完成前,相关元素需要隐藏。
初始化前的元素隐藏 & 挂载设置
隐私默认隐藏
在隐私初始化完成前,SDK 相关合规元素以及计入游戏的按钮均默认需要隐藏。

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

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

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

隐私初始化、根据用户同意状态操作合规显示、上报展示
调用GameHelper.AAP.startProcess
方法,进行隐私初始化。
回调函数读取一个。该布尔值代表用户是否已经同意隐私条款。在回调函数中,需根据该布尔值,调整隐私交互逻辑的初始状态。以下提供一个示例思路
- false: 展示勾选框,未勾选状态,允许用户勾选,需手动勾选后,点击开始游戏按钮进入游戏
- true:展示勾选框,已勾选状态,不允许取消勾选。隔 1~2 秒后自动进入游戏,用户也可点击开始游戏按钮立刻进入游戏
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("执行其他业务逻辑");
});
在最后时机上报用户同意拒绝状态
在执行“隐私同意并进入游戏
”或者“隐私拒绝并退出游戏
”这种最后关头的时机,必须上报隐私的最终状态给 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");
}
点我快速对接


