WX-Game1/Assets/Scripts/MiniProgramNavigator_README.md

3.7 KiB
Raw Permalink Blame History

小程序跳转工具使用说明

快速开始

1. 设置默认AppID推荐

在游戏启动时设置一次默认AppID后续调用时无需每次都传AppID

// 在GameLauncher或Start方法中调用
MiniProgramNavigator.SetDefaultAppId("wx1234567890abcdef");

2. 直接跳转到指定页面

最简单的方式,一行代码搞定:

// 跳转到背包页面
MiniProgramNavigator.NavigateToBag();

// 跳转到打卡页面
MiniProgramNavigator.NavigateToDaka();

// 跳转到成就页面
MiniProgramNavigator.NavigateToAchieve();

// 跳转到排行页面
MiniProgramNavigator.NavigateToRank();

// 跳转到拍卖行页面
MiniProgramNavigator.NavigateToAuction();

// 跳转到动态页面
MiniProgramNavigator.NavigateToDynamics();

// 跳转到邮件页面
MiniProgramNavigator.NavigateToMail();

在按钮中绑定使用

方法一直接在Button的OnClick事件中调用

  1. 选择你的Button对象
  2. 在Inspector面板的Button组件中点击OnClick事件
  3. 将包含脚本的GameObject拖拽到OnClick事件槽位
  4. 在方法列表中选择对应的方法,例如:
    • MiniProgramNavigator_Example.OnBagButtonClick() - 跳转背包
    • MiniProgramNavigator_Example.OnDakaButtonClick() - 跳转打卡
    • 等等...

方法二:在组件中直接调用

在你的组件脚本中添加跳转方法:

public class BackpackComponent : MonoBehaviour
{
    private void Awake()
    {
        Button btn = GetComponent<Button>();
        if (btn != null)
        {
            btn.onClick.AddListener(() => {
                // 跳转到背包页面
                MiniProgramNavigator.NavigateToBag();
            });
        }
    }
}

高级用法

带回调的跳转

MiniProgramNavigator.NavigateToBag(
    onSuccess: () => {
        Debug.Log("成功跳转到背包页面");
        // 可以在这里执行其他逻辑,比如保存游戏状态
    },
    onFail: (error) => {
        Debug.LogError($"跳转失败: {error}");
        // 可以在这里显示错误提示给用户
    }
);

传递额外数据

var extraData = new {
    userId = "12345",
    fromGame = true,
    gameScore = 1000
};

MiniProgramNavigator.NavigateToAchieve(
    extraData: extraData,
    onSuccess: () => Debug.Log("跳转成功")
);

使用枚举方式跳转(类型安全)

MiniProgramNavigator.NavigateToPage(
    MiniProgramNavigator.MiniProgramPage.Bag
);

指定不同AppID

如果需要在运行时跳转到不同的小程序:

// 覆盖默认AppID跳转到另一个小程序
MiniProgramNavigator.NavigateToBag(
    appId: "wx9876543210fedcba"  // 不同的AppID
);

页面路径常量

如果需要在其他地方使用页面路径,可以使用常量:

string bagPath = MiniProgramNavigator.PagePath.Bag;        // "pages/index/bag"
string dakaPath = MiniProgramNavigator.PagePath.Daka;      // "pages/index/daka"
string achievePath = MiniProgramNavigator.PagePath.Achieve; // "pages/index/achieve"
// ... 等等

注意事项

  1. 必须由用户触发:跳转必须在用户点击等交互事件中调用,不能自动跳转
  2. 会弹出确认弹窗:微信会弹出确认弹窗,用户确认后才会跳转
  3. 设置AppID使用前必须先设置AppID通过SetDefaultAppId或每次调用时传入)

已实现的页面

  • 背包页面 (pages/index/bag)
  • 打卡页面 (pages/index/daka)
  • 成就页面 (pages/index/achieve)
  • 排行页面 (pages/index/rank)
  • 拍卖行页面 (pages/index/auction)
  • 动态页面 (pages/index/dynamics)
  • 邮件页面 (pages/index/mail)