Skip to content

页面导航完整地图

Source: src/stackflow/

概览

应用使用 Stackflow 作为导航框架,共有 31 个 Activity + 27 个 Sheet/Job + 3 个 Tab


路由表

主页面 (Activities)

Activity路由描述
MainTabsActivity/主页 (含 3 个 Tab)
WelcomeActivity/welcome欢迎页 (首次启动)
WalletListActivity/wallet/list钱包列表
WalletConfigActivity/wallet/:walletId钱包设置
WalletCreateActivity/wallet/create创建钱包
OnboardingRecoverActivity/onboarding/recover恢复钱包
SendActivity/send发送
ReceiveActivity/receive接收
TokenDetailActivity/token/:tokenId代币详情
TransactionDetailActivity/transaction/:txId交易详情
HistoryActivity/history交易历史
AddressBalanceActivity/address-balance地址余额
AddressTransactionsActivity/address-transactions地址交易
AddressBookActivity/address-book地址簿
ScannerActivity/scanner扫码
StakingActivity/staking质押
NotificationsActivity/notifications通知
SettingsActivity/settings设置
SettingsLanguageActivity/settings/language语言设置
SettingsCurrencyActivity/settings/currency货币设置
SettingsChainsActivity/settings/chains链设置
SettingsMnemonicActivity/settings/mnemonic助记词
SettingsWalletLockActivity/settings/wallet-lock钱包锁定
SettingsWalletChainsActivity/settings/wallet-chains钱包链
SettingsStorageActivity/settings/storage存储管理
SettingsSourcesActivity/settings/sources应用源
MiniappDetailActivity/miniapp/:appId/detail小程序详情
AuthorizeAddressActivity/authorize/address/:id授权地址
AuthorizeSignatureActivity/authorize/signature/:id授权签名

Sheet/Job (底部弹窗)

Job路由描述
ChainSelectorJob/job/chain-selector选择链
ChainSwitchConfirmJob/job/chain-switch-confirm确认切换链
WalletAddJob/job/wallet-add添加钱包
WalletListJob/job/wallet-list钱包列表弹窗
WalletPickerJob/job/wallet-picker选择钱包
WalletRenameJob/job/wallet-rename/:walletId重命名钱包
WalletDeleteJob/job/wallet-delete/:walletId删除钱包
WalletLockConfirmJob/job/wallet-lock-confirm确认锁定
TransferConfirmJob/job/transfer-confirm确认转账
TransferWalletLockJob/job/transfer-wallet-lock转账钱包锁
SigningConfirmJob/job/signing-confirm确认签名
FeeEditJob/job/fee-edit编辑手续费
ScannerJob/job/scanner扫码弹窗
ContactEditJob/job/contact-edit编辑联系人
ContactPickerJob/job/contact-picker选择联系人
ContactAddConfirmJob/job/contact-add-confirm确认添加联系人
ContactShareJob/job/contact-share分享联系人
MnemonicOptionsJob/job/mnemonic-options助记词选项
SecurityWarningJob/job/security-warning安全警告
SetTwoStepSecretJob/job/set-two-step-secret设置二步密码
TwoStepSecretConfirmJob/job/two-step-secret-confirm确认二步密码
ClearDataConfirmJob/job/clear-data-confirm确认清除数据
PermissionRequestJob/job/permission-request权限请求
MiniappTransferConfirmJob/job/miniapp-transfer-confirm小程序转账确认
MiniappSignTransactionJob/job/miniapp-sign-transaction小程序签名交易

Tabs (主页标签)

Tab文件描述
WalletTabtabs/WalletTab.tsx钱包首页
EcosystemTabtabs/EcosystemTab.tsx生态系统/小程序
SettingsTabtabs/SettingsTab.tsx设置

导航关系图

┌────────────────────────────────────────────────────────────────────────┐
│                           WelcomeActivity                              │
│                    (首次启动 / 无钱包时)                                 │
└───────────────────────────────┬────────────────────────────────────────┘

          ┌─────────────────────┼─────────────────────┐
          ▼                     ▼                     ▼
┌─────────────────┐   ┌─────────────────┐   ┌─────────────────────────┐
│WalletCreateActivity│   │OnboardingRecoverActivity│  │   (Import from other app)  │
│  (创建新钱包)     │   │    (恢复钱包)      │   │                         │
└────────┬────────┘   └────────┬────────┘   └────────────┬────────────┘
         │                     │                         │
         └─────────────────────┼─────────────────────────┘


┌────────────────────────────────────────────────────────────────────────┐
│                         MainTabsActivity                               │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────────────┐ │
│  │  WalletTab   │  │ EcosystemTab │  │        SettingsTab           │ │
│  │  (钱包首页)  │  │ (小程序商店) │  │         (设置)               │ │
│  └──────┬───────┘  └──────┬───────┘  └──────────────┬───────────────┘ │
└─────────┼─────────────────┼─────────────────────────┼──────────────────┘
          │                 │                         │
          ▼                 ▼                         ▼
    ┌─────────────────────────────────────────────────────────────────┐
    │                       钱包操作                                  │
    │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
    │  │SendActivity │ │ReceiveActivity│ │TokenDetailActivity│ │HistoryActivity│ │
    │  └──────┬──────┘ └─────────────┘ └──────┬──────┘ └─────┬─────┘ │
    │         │                               │              │       │
    │         ▼                               ▼              ▼       │
    │  ┌────────────────┐              ┌──────────────────────────┐  │
    │  │TransferConfirmJob│              │TransactionDetailActivity  │  │
    │  └────────────────┘              └──────────────────────────┘  │
    └─────────────────────────────────────────────────────────────────┘

钱包管理流程

MainTabsActivity (WalletTab)

         ├──▶ WalletListActivity ──▶ WalletConfigActivity
         │         │                        │
         │         ├──▶ WalletAddJob        ├──▶ WalletRenameJob
         │         │                        ├──▶ WalletDeleteJob
         │         └──▶ WalletPickerJob     └──▶ SettingsWalletChainsActivity

         ├──▶ SendActivity
         │         │
         │         ├──▶ ScannerJob (扫描地址)
         │         ├──▶ ContactPickerJob (选择联系人)
         │         ├──▶ FeeEditJob (编辑手续费)
         │         └──▶ TransferConfirmJob
         │                   │
         │                   └──▶ TransferWalletLockJob (验证密码/生物识别)

         ├──▶ ReceiveActivity

         ├──▶ TokenDetailActivity
         │         │
         │         └──▶ TransactionDetailActivity

         └──▶ HistoryActivity

                   └──▶ TransactionDetailActivity

设置页面流程

MainTabsActivity (SettingsTab)

         ├──▶ SettingsLanguageActivity
         ├──▶ SettingsCurrencyActivity
         ├──▶ SettingsChainsActivity
         │         │
         │         └──▶ ChainSelectorJob

         ├──▶ SettingsMnemonicActivity
         │         │
         │         └──▶ MnemonicOptionsJob
         │                   │
         │                   └──▶ SecurityWarningJob

         ├──▶ SettingsWalletLockActivity
         │         │
         │         ├──▶ SetTwoStepSecretJob
         │         └──▶ TwoStepSecretConfirmJob

         ├──▶ SettingsStorageActivity
         │         │
         │         └──▶ ClearDataConfirmJob

         └──▶ SettingsSourcesActivity

小程序/DApp 流程

MainTabsActivity (EcosystemTab)

         ├──▶ MiniappDetailActivity

         └──▶ [MiniappWindow] (非 Stackflow, 由 miniapp-runtime 管理)

                   ├──▶ PermissionRequestJob (权限请求)
                   ├──▶ MiniappTransferConfirmJob (转账确认)
                   ├──▶ MiniappSignTransactionJob (签名确认)
                   ├──▶ ChainSwitchConfirmJob (切换链)

                   └──▶ AuthorizeAddressActivity

                              └──▶ AuthorizeSignatureActivity

Stackflow 配置

typescript
// src/stackflow/stackflow.ts

export const { Stack, useFlow, useStepFlow, activities } = stackflow({
  transitionDuration: 350,
  plugins: [
    basicRendererPlugin(),
    basicUIPlugin({
      theme: 'cupertino',  // iOS 风格
    }),
    historySyncPlugin({
      routes: { /* 路由表 */ },
      fallbackActivity: () => 'MainTabsActivity',
      useHash: true,
      urlPatternOptions: {
        segmentValueCharset: 'a-zA-Z0-9-._~ %',  // 支持 appId 中的点号
      },
    }),
  ],
  activities: { /* Activity 组件 */ },
});

导航 Hooks

typescript
import { useFlow } from '@/stackflow';

function MyComponent() {
  const { push, pop, replace } = useFlow();
  
  // 跳转到新页面
  push('SendActivity', { chainId: 'ethereum' });
  
  // 返回上一页
  pop();
  
  // 替换当前页面
  replace('MainTabsActivity', {});
}

相关文档

Released under the MIT License.