跳到主要内容

Swee-H5页面

Swee Public 是 Swee 平台的 H5 页面集合,基于 Vite 5 + React 18 构建,主要嵌入在原生 App 的 WebView 中。承载了 Gold Rush 挖矿、Treasure Box 宝箱任务、游戏系统(SSO Token)、创作者收益看板(7 种收入类型)、提现系统、KOL 邀请落地页、社交分享等核心运营功能,是连接 App 原生能力与 Web 灵活性的关键桥梁。


一、项目技术架构

1.1 整体架构图

1.2 核心技术栈

领域技术选型版本
构建工具Vite5.4.2
UI 框架React + React Router18.2.0 / 6.3.0
移动组件Ant Design Mobile5.39.0
动画Framer Motion11.11.17
国际化i18next + react-i18next23.16.4 / 15.4.1
Hooks 工具ahooks3.8.1
错误监控Sentry7.91.0
样式Tailwind CSS + SASS3.4.10
JS-Native 通信@swee/js-bridge-sdk (DSBridge)-
兼容性@vitejs/plugin-legacyAndroid 5+ / iOS 7+
架构决策

选择 Vite 5 + React 18 作为核心技术栈,利用 Vite 的快速 HMR 提升开发效率,同时通过 @vitejs/plugin-legacy 确保对低版本 Android/iOS WebView 的兼容性。使用 @swee/js-bridge-sdk(基于 DSBridge)实现 Web 与原生 App 的双向通信,是 H5 嵌入 WebView 场景的关键基础设施。


二、路由架构

2.1 完整路由树

2.2 路由详细清单

路径功能认证
/gold-rush/home金矿主页(全局概览)需登录
/gold-rush/room房间级挖矿需登录
/gold-rush/rules挖矿规则说明公开
/treasure-box宝箱任务主页需登录
/treasure-box/rule宝箱规则详情公开
/game/list房间内游戏列表需登录
/game/jump游戏跳转中转页需登录
/game/pushPush 游戏专页需登录
/game/revenue游戏收益面板需登录
/data/summary创作者收益汇总需登录
/data/aiAI 训练/分享收益需登录
/data/live直播/1V1 收益需登录
/data/share分享收益详情需登录
/data/showcase展示收益需登录
/data/summon召唤收益需登录
/data/other其他收益需登录
/withdraw/history提现历史需登录
/withdraw/apply提现申请需登录
/withdraw/bind银行账户绑定需登录
/share/room直播间分享公开
/share/encounterAI 邂逅分享公开
/share/lover爱人分享公开
/share/memories回忆分享公开
/share/moments时刻分享公开
/share/challenge挑战分享公开
/invite/landingKOL 邀请落地页公开
/binding/entryOAuth 绑定入口需登录
/binding/callbackOAuth 回调-
/binding/social社交账号绑定需登录

三、Gold Rush 挖矿系统

3.1 系统架构

3.2 6 大 Diggies 任务

3.3 事件驱动刷新

gold-rush/hooks/useTabRefresh.ts
// 父组件切换 Tab 时
eventEmitter.emit(REFRESH_MY_DIGS);
eventEmitter.emit(REFRESH_LEADERBOARD);

// 子组件监听并刷新
useEventOn({ name: REFRESH_MY_DIGS, listener: refresh });
事件驱动刷新的优势

通过 EventEmitter 实现跨组件通信,避免了 Props Drilling 和不必要的全局状态管理。父组件切换 Tab 时只需发出事件,各子组件按需监听并刷新,实现了精确的数据更新粒度控制。


四、Treasure Box 宝箱任务

4.1 任务数据结构


五、游戏系统与 SSO Token

5.1 游戏进入流程

5.2 游戏 URL 参数

参数说明来源
uid用户 ID登录信息
tokenSSO 令牌getGameToken() API
lang游戏语言gameLanguageMap 映射
roomid房间 IDURL 参数
source来源1=房间内 / 2=游戏Tab
size窗口大小1=半屏 / 2=全屏
time时间戳防缓存
SSO Token 安全注意事项

游戏 SSO Token 由后端签发,需注意 Token 的有效期控制和防重放攻击。URL 中携带 time 时间戳参数用于防缓存,但不能替代后端的 Token 过期校验机制。

5.3 游戏收益面板

  • API: /x/game/user/game/revenue_panel_1
  • 展示最近 14 天收益数据
  • 按小时计费统计

六、创作者收益看板

6.1 7 种收入类型

6.2 收益看板架构

6.3 收入权限检查

api/data.ts
// 检查用户是否有权查看各模块收益
queryIncomePrivilege({ modules: string[] })
IncomePrivilegeVo[] {
privilegeType: string // 模块类型
permitted: boolean // 是否有权
existResource: boolean // 是否有资源
}

七、提现系统

7.1 完整提现流程


八、分享系统

8.1 6 种分享类型

类型路径功能
直播间/share/room直播间信息 + 下载引导
AI 邂逅/share/encounterAI 伴侣邂逅分享
爱人/share/lover爱人信息展示
回忆/share/memories互动回忆分享
时刻/share/moments精彩时刻分享
挑战/share/challenge互动挑战分享

8.2 分享页面交互

8.3 飞起点赞动画


九、JS Bridge 与 App 通信

9.1 通信架构

Deep Link目标页面
x3live://live_room?roomId=xxx直播间
x3live://video_streaming普通开播页
x3live://1v1_streaming1V1 开播页
x3live://ai_home创建数字人
x3live://ai_create_image训练数字人
x3live://showcase_uploadShowcase 上传
x3live://streamer_summon召回页

9.3 Bridge 调试工具

/test/bridge 页面提供完整的 JS Bridge 调试能力,支持自定义命名空间、方法名、参数输入和结果查看。


十、Vite 构建优化

10.1 构建策略

构建优化要点

通过手动分包将 reactreact-domantd-mobile 等稳定依赖拆分为独立 vendor chunk,利用浏览器缓存减少重复加载。配合 SWC 编译器(plugin-react-swc)替代 Babel,显著提升开发和构建速度。

10.2 兼容性配置

vite.config.ts
legacy({
targets: {
android: '5', // Android 5.0+
ios: '7', // iOS 7+
chrome: '58', // Chrome 58+
}
})

十一、错误监控

11.1 Sentry 配置


十二、技术亮点总结

12.1 无缝 App 集成

  • JS Bridge 三种通信模式:同步调用、异步调用、事件监听
  • Deep Link 协议:7+ 种原生页面跳转
  • Token 透传:App 注入认证信息,Web 无需重复登录

12.2 事件驱动的组件通信

  • 使用 @swee/request 的 EventEmitter 实现跨组件通信
  • 避免 Props Drilling 和不必要的状态提升
  • 精确控制数据刷新粒度

12.3 多维度数据展示

  • Gold Rush 支持全局/房间级两种视图维度
  • 创作者收益支持 7 种收入类型 + 灵活时间范围
  • 动态 Tab 生成 + 权限控制

12.4 SSO Token 游戏对接

  • 统一的 SSO Token 获取机制
  • 标准化游戏 URL 参数构建
  • 支持半屏/全屏两种显示模式

12.5 飞起点赞特效

  • 3 种颜色随机生成心形
  • 9 种 fly-up 动画 + 延迟变种
  • 纯 CSS 动画实现,高性能
纯 CSS 动画的性能优势

飞起点赞特效完全使用 CSS @keyframes + transform 实现,触发 GPU 合成层加速,不占用主线程,在低端移动设备上也能保持流畅的 60fps 动画体验。

12.6 老设备兼容

  • Vite Legacy 插件支持 Android 5+ / iOS 7+
  • CSS 变量自动后备方案
  • Node polyfills 支持

12.7 完整的提现闭环

  • 银行账户绑定 → 提现申请 → 历史查看
  • 邮箱验证码二次验证
  • 金额范围校验(min/max)

12.8 KOL 邀请机制

  • 邀请码绑定 + Email 验证
  • Framer Motion 入场动画
  • 奖励领取 + App 深度链接返回

十三、项目数据概览

指标数据
路由数量25+
视图组件30+
API 模块10+ (gold/game/task/pay/data/user 等)
分享类型6 种
收入类型7 种
挖矿任务6 种 Diggies
Deep Link7+ 种原生页面
支持语言3 种(en-US / zh-TW / id-ID)
兼容性Android 5+ / iOS 7+ / Chrome 58+
构建工具Vite 5 + SWC