156 lines
3.7 KiB
Markdown
156 lines
3.7 KiB
Markdown
# 小程序跳转工具使用说明
|
||
|
||
## 快速开始
|
||
|
||
### 1. 设置默认AppID(推荐)
|
||
|
||
在游戏启动时设置一次默认AppID,后续调用时无需每次都传AppID:
|
||
|
||
```csharp
|
||
// 在GameLauncher或Start方法中调用
|
||
MiniProgramNavigator.SetDefaultAppId("wx1234567890abcdef");
|
||
```
|
||
|
||
### 2. 直接跳转到指定页面
|
||
|
||
最简单的方式,一行代码搞定:
|
||
|
||
```csharp
|
||
// 跳转到背包页面
|
||
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()` - 跳转打卡
|
||
- 等等...
|
||
|
||
### 方法二:在组件中直接调用
|
||
|
||
在你的组件脚本中添加跳转方法:
|
||
|
||
```csharp
|
||
public class BackpackComponent : MonoBehaviour
|
||
{
|
||
private void Awake()
|
||
{
|
||
Button btn = GetComponent<Button>();
|
||
if (btn != null)
|
||
{
|
||
btn.onClick.AddListener(() => {
|
||
// 跳转到背包页面
|
||
MiniProgramNavigator.NavigateToBag();
|
||
});
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## 高级用法
|
||
|
||
### 带回调的跳转
|
||
|
||
```csharp
|
||
MiniProgramNavigator.NavigateToBag(
|
||
onSuccess: () => {
|
||
Debug.Log("成功跳转到背包页面");
|
||
// 可以在这里执行其他逻辑,比如保存游戏状态
|
||
},
|
||
onFail: (error) => {
|
||
Debug.LogError($"跳转失败: {error}");
|
||
// 可以在这里显示错误提示给用户
|
||
}
|
||
);
|
||
```
|
||
|
||
### 传递额外数据
|
||
|
||
```csharp
|
||
var extraData = new {
|
||
userId = "12345",
|
||
fromGame = true,
|
||
gameScore = 1000
|
||
};
|
||
|
||
MiniProgramNavigator.NavigateToAchieve(
|
||
extraData: extraData,
|
||
onSuccess: () => Debug.Log("跳转成功")
|
||
);
|
||
```
|
||
|
||
### 使用枚举方式跳转(类型安全)
|
||
|
||
```csharp
|
||
MiniProgramNavigator.NavigateToPage(
|
||
MiniProgramNavigator.MiniProgramPage.Bag
|
||
);
|
||
```
|
||
|
||
### 指定不同AppID
|
||
|
||
如果需要在运行时跳转到不同的小程序:
|
||
|
||
```csharp
|
||
// 覆盖默认AppID,跳转到另一个小程序
|
||
MiniProgramNavigator.NavigateToBag(
|
||
appId: "wx9876543210fedcba" // 不同的AppID
|
||
);
|
||
```
|
||
|
||
## 页面路径常量
|
||
|
||
如果需要在其他地方使用页面路径,可以使用常量:
|
||
|
||
```csharp
|
||
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`)
|
||
|
||
|
||
|
||
|
||
|