cocos creator 3.8 抖音、字节跳动侧边栏复访功能 2
·
import { _decorator, Component, director, Node, sys } from 'cc';
const { ccclass, property } = _decorator;
const tt: any = window["tt"];
@ccclass('SideBar')
export class SideBar extends Component {
@property(Node)//入口有礼按钮
EnterBut: Node = null!;
@property(Node)//入口有礼界面
SideBarView: Node = null!;
@property(Node)//领取奖励按钮
GetBut: Node = null!;
@property(Node)//跳转侧边栏按钮
NavigateBut: Node = null!;
protected onLoad(): void {
//常驻此节点 2.x此节点需要在根节点下 3.x在Canva节点下
director.addPersistRootNode(this.node);
this.SideBarView.active = false;
if (tt) {
//目前只支持抖音与抖急
if (tt.getSystemInfoSync().appName == "Douyin" || tt.getSystemInfoSync().appName == "douyin_lite") {
//兼容性 从基础库2.92.0.0版本开始支持本方法
if (this.compareVersion(window["tt"].getSystemInfoSync().SDKVersion, '2.92.0.0') >= 0) {
//判断用户是否支持侧边栏进入功能
tt.checkScene({
scene: "sidebar",
success: (res: any) => {
//成功回调逻辑
if (res.isExist) {
this.EnterBut.active = true;
} else {
this.EnterBut.active = false;
}
},
fail: (res: any) => {
//失败回调逻辑
this.EnterBut.active = false;
}
});
} else {
this.EnterBut.active = false;
}
tt.onShow((res: any) => {
if (res.launch_from === "homepage" && res.location === "sidebar_card") {
this.GetBut.active = false;
this.NavigateBut.active = true;
} else {
this.GetBut.active = true;
this.NavigateBut.active = false;
}
});
} else {
this.EnterBut.active = false;
}
}
}
// 对比版本号
compareVersion(v1: any, v2: any) {
v1 = v1.split('.');
v2 = v2.split('.');
const len = Math.max(v1.length, v2.length);
while (v1.length < len) {
v1.push('0');
}
while (v2.length < len) {
v2.push('0');
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i]);
const num2 = parseInt(v2[i]);
if (num1 > num2) {
return 1;
} else if (num1 < num2) {
return -1;
}
}
return 0;
}
//打开
onBtnOpenSideBarView() {
this.SideBarView.active = true;
}
//关闭
onBtnCloseSideBarView() {
this.SideBarView.active = false;
}
//调出侧边栏
onBtnGotoSidebar() {
if (tt){
tt.navigateToScene({
scene: "sidebar",
success: (res: any) => {
// 跳转成功回调逻辑
},
fail: (res: any) => {
// 跳转失败回调逻辑
tt.showToast({
title: "侧边栏跳转失败",
duration: 2000,
success(res) {
console.log(`${res}`);
},
fail(res) {
console.log(`showToast调用失败`);
},
});
},
});
}
}
//领取奖励
onBtnGetAward() {
//TODO领取奖励 【每日奖励,或者一次性奖励都行】
}
}
2.x上基本也是这样用的,实在不会用,下载我的demo吧。
更多推荐
所有评论(0)