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吧。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐