3.7 KiB
3.7 KiB
小程序跳转工具使用说明
快速开始
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事件中调用
- 选择你的Button对象
- 在Inspector面板的Button组件中,点击OnClick事件
- 将包含脚本的GameObject拖拽到OnClick事件槽位
- 在方法列表中选择对应的方法,例如:
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"
// ... 等等
注意事项
- 必须由用户触发:跳转必须在用户点击等交互事件中调用,不能自动跳转
- 会弹出确认弹窗:微信会弹出确认弹窗,用户确认后才会跳转
- 设置AppID:使用前必须先设置AppID(通过
SetDefaultAppId或每次调用时传入)
已实现的页面
- ✅ 背包页面 (
pages/index/bag) - ✅ 打卡页面 (
pages/index/daka) - ✅ 成就页面 (
pages/index/achieve) - ✅ 排行页面 (
pages/index/rank) - ✅ 拍卖行页面 (
pages/index/auction) - ✅ 动态页面 (
pages/index/dynamics) - ✅ 邮件页面 (
pages/index/mail)