Appearance
直玩
设置直玩出现时机
version>=1.1.0
仅支持抖音小游戏
csharp
public static void SetFeedGameData(SetFeedGameDataParam param);
typescript
export function setFeedGameData(params: SetFeedGameDataParam): void;
SetZWDataParam参数
参数 | 类型 | 说明 | 默认值 |
---|---|---|---|
scene | number | 场景 | |
contentIds | Array[string] | contentIds | |
timestamp | number | 时间戳(毫秒) |
- 本接口仅提供了服务端支持,完整调用请参考文档:推荐流直出小游戏能力接入指引
下面,我们给出一种实现方式以供参考,请注意,以下为伪代码,仅演示逻辑流程
// 在首页判断是否来自抖音推荐流直出
if(tt.getLaunchOptionsSync().scene.toString().endsWith('3041')){ // 注意如果是重复可以进入的判断,则仅需判断第一次
// 进入对应的界面
// 如果有多种场景,也可以拿到query下的feed_game_scene 或 feed_game_extra 进行对应的跳转
}
// 在跳转成功后,一定要上报该接口
// 注意上报该接口后,抖音会停止网络相关的访问,所以要确保远程资源已经下载完毕
// 同时也只有在这个方法上报后,抖音才会显示直玩入口,所以也不建议太晚上报
tt.reportScene({ sceneId: 7001, costTime: params.duration });
// 在对应的界面,比如领取界面,进行授权判断
// 如果选择的是all,则必须是用户主动操作的,我们一般建议在领取的时候弹出,然后顺便上报给服务器下一次领取的时间
tt.checkFeedSubscribeStatus({
type: 'play',
allScene: true,
success: (res: { status: boolean }) => {
if (res.status) {
// 已订阅回调
return;
}
// 继续请求
tt.requestFeedSubscribe({
type: 'play',
// 单场景订阅
scene: 1,
contentIDs: ["CONTENT123", "CONTENT234"],
// 对应全场景,则必须是用户点击后触发
allScene: true,
success: (res: { errMsg: string, success: boolean }) => {
if (res.success) {
// 订阅成功回调
} else {
// 用户未订阅
}
},
fail: (err: { errNo: number, errMsg: string }) => {
// 订阅失败
}
});
},
fail: (err: { errNo: number, errMsg: string }) => {
// 查询失败
}
// 订阅成功后,向服务器请求下次成功的领取时间
// 离线收益场景是1 体力恢复场景是2 重大时间提醒场景是3
seeg.setFeedGameData(scene, ["CONTENT_ID"], time);
// 如果需要统计从推荐流直出来的用户,可以使用tt.onFeedStatusChange接口监听