nac-presale/deploy-logs/deploy-20260309-wallet-fix.md

1.8 KiB
Raw Blame History

部署日志 — 钱包连接修复

日期

2026-03-09

部署目标

修复手机端钱包连接失败问题

问题根因

用户在手机 Chrome 浏览器中访问预售页面,手机浏览器不支持 MetaMask 扩展插件, 导致"未检测到 EVM 钱包",且旧版本没有提供 DeepLink 引导。

修复内容

1. WalletSelector.tsx (v2 → v3)

  • 新增移动端浏览器检测 (isMobileBrowser)
  • 新增 MobileDeepLinkPanel 组件
  • 支持 MetaMask App DeepLink: https://metamask.app.link/dapp/
  • 支持 Trust Wallet DeepLink: https://link.trustwallet.com/open_url
  • 支持 OKX Wallet DeepLink: okx://wallet/dapp/url
  • 支持 TokenPocket DeepLink: tpoutside://pull
  • 在钱包 App 内置浏览器中检测到 window.ethereum 时正常显示连接按钮

2. useWallet.ts (v2 → v3)

  • connect() 函数现在返回 { success: boolean; error?: string }
  • 增加 MetaMask 未初始化检测(已安装但未创建/导入钱包)
  • 增加中文友好错误提示

3. Home.tsx

  • NavWalletButton 在手机端直接显示模态框(跳过直接连接尝试)
  • 连接失败时通过 toast.error() 显示错误信息

构建结果

  • 构建成功0 TypeScript 错误
  • dist/public/assets/index-*.js 包含 DeepLink 代码

服务器状态

  • PM2 进程 nac-presale-test (id:8) 已重启,状态 online
  • HTTP 200 响应正常

测试说明

  • 手机端:点击"连接钱包"按钮 → 显示"手机端连接钱包"面板 → 点击钱包 App 按钮 → 在 App 内置浏览器中打开预售页面 → 正常连接钱包
  • 桌面端MetaMask 已初始化 → 直接连接;未初始化 → 显示引导提示

后台管理员账号

操作人

Manus AI Agent