# 运营功能开发文档 > 关联文档:[运营方案](./运营方案.md) > 制定日期:2026-05-21 > 当前代码分析日期:2026-05-21 --- ## 一、开发任务总览 | 编号 | 任务 | 优先级 | 工时 | 依赖 | 涉及模块 | |------|------|--------|------|------|---------| | DEV-01 | 接入百度统计SDK | 🔴 P0 | 0.5天 | 无 | 前端 only | | DEV-03 | 分享功能完善 | 🔴 P0 | 2天 | DEV-04 | Share + Player | | DEV-04 | 邀请奖励机制 | 🔴 P0 | 2天 | DEV-03 | Share + Subscription | | DEV-08 | 分享卡片美化 | 🟡 P1 | 0.5天 | DEV-03 | Share + UI | --- ## 二、DEV-01:接入百度统计SDK ### 2.1 目标 前端页面加入用户行为统计,能跟踪:PV/UV、页面停留时长、按钮点击事件、用户来源渠道。 ### 2.2 技术方案 选择**百度统计**,原因: - 免费额度够用(日均PV < 10万免费) - 支持微信小程序 SDK - 接入成本最低,一行代码初始化 ### 2.3 具体实现 #### 2.3.1 安装与配置 ```bash cd my-uniapp-vue3 npm install @baidu/stat-mp --save # 百度统计小程序SDK ``` #### 2.3.2 新建统计工具文件 **文件:`my-uniapp-vue3/src/utils/analytics.ts`**(新建) ```typescript /** * 百度统计分析工具 * 使用前需在百度统计后台创建应用,获取 appKey */ // 百度统计小程序 key(需在百度统计后台申请) const BAIDU_APP_KEY = ''; // TODO: 替换为实际key // H5 环境使用传统百度统计 const H5_BAIDU_ID = ''; // TODO: 替换为实际id /** * 初始化统计 */ export function initAnalytics() { // #ifdef MP-WEIXIN if (BAIDU_APP_KEY) { // 微信小程序接入百度统计 const mtj = require('@baidu/stat-mp'); mtj.default.init(BAIDU_APP_KEY, { autoTrack: true, // 自动采集页面浏览 }); } // #endif // #ifdef H5 if (H5_BAIDU_ID) { // H5 接入百度统计 const script = document.createElement('script'); script.src = `https://hm.baidu.com/hm.js?${H5_BAIDU_ID}`; document.head.appendChild(script); } // #endif } /** * 自定义事件上报 * @param eventName 事件名称 * @param params 事件参数 */ export function trackEvent(eventName: string, params?: Record) { // #ifdef MP-WEIXIN try { const mtj = require('@baidu/stat-mp'); mtj.default.event(eventName, params || {}); } catch (e) { // 静默失败 } // #endif // #ifdef H5 try { if ((window as any)._hmt) { (window as any)._hmt.push(['_trackEvent', eventName, 'click', JSON.stringify(params || {})]); } } catch (e) { // 静默失败 } // #endif } /** * 预定义事件常量(业务事件) */ export const AnalyticsEvents = { // 用户行为 USER_REGISTER: 'user_register', USER_LOGIN: 'user_login', // TTS 生成 TTS_GENERATE_START: 'tts_generate_start', TTS_GENERATE_SUCCESS: 'tts_generate_success', TTS_GENERATE_FAIL: 'tts_generate_fail', // 播放器 PLAYER_PLAY: 'player_play', PLAYER_COMPLETE: 'player_complete', PLAYER_FAVORITE: 'player_favorite', PLAYER_SHARE: 'player_share', // 付费转化 MEMBER_PAGE_VIEW: 'member_page_view', MEMBER_CLICK_BUY: 'member_click_buy', MEMBER_PAY_START: 'member_pay_start', MEMBER_PAY_SUCCESS: 'member_pay_success', // 签到 SIGN_IN: 'sign_in', // 分享裂变 SHARE_CLICK: 'share_click', SHARE_COMPLETE: 'share_complete', INVITE_ACCEPT: 'invite_accept', } as const; export default { init: initAnalytics, trackEvent, AnalyticsEvents }; ``` #### 2.3.3 在 App.vue 中初始化 **文件:`my-uniapp-vue3/src/App.vue`** 在 `