Skip to content
On this page

悬浮宠物聊天功能实现说明

功能概述

成功实现了点击悬浮宠物弹出聊天对话窗体的功能,包含以下核心特性:

✅ 已实现功能

  1. 点击触发聊天

    • 点击悬浮宠物图标
    • 弹出聊天对话窗口
    • 支持点击遮罩关闭
  2. 文字聊天功能

    • 输入框支持文字输入
    • 发送按钮和回车键发送
    • 实时显示聊天记录
    • 自动滚动到最新消息
  3. 语音聊天功能

    • 长按麦克风按钮录音
    • 松开按钮停止录音
    • 显示录音时长
    • 点击语音消息播放
    • 使用新版微信录音API
  4. 聊天记录管理

    • 自动保存最近50条记录
    • 本地存储持久化
    • 清空聊天记录功能
    • 时间戳显示
  5. 智能宠物回复

    • 用户发送消息后自动回复
    • 10种不同的回复内容
    • 1-3秒随机延迟回复
    • 模拟真实对话体验
  6. 现代化UI设计

    • 美观的聊天界面
    • 用户和宠物消息区分
    • 响应式设计
    • 深色模式支持
    • 平滑动画效果

技术实现

组件结构

components/chat-dialog/
├── chat-dialog.js      # 组件逻辑
├── chat-dialog.wxml    # 组件模板
├── chat-dialog.wxss    # 组件样式
├── chat-dialog.json    # 组件配置
└── README.md          # 使用说明

核心API使用

  • wx.getRecorderManager() - 录音管理
  • wx.createInnerAudioContext() - 音频播放
  • wx.setStorageSync() - 本地存储
  • wx.getStorageSync() - 读取存储

事件处理

  • bind:openChat - 悬浮宠物点击事件
  • bind:close - 聊天窗口关闭事件
  • bindtouchstart/bindtouchend - 语音录制事件

使用流程

  1. 打开聊天

    • 用户点击悬浮宠物
    • 触发 onOpenChat 事件
    • 显示聊天窗口
  2. 发送文字消息

    • 在输入框输入文字
    • 点击发送或按回车
    • 消息显示在聊天区域
    • 宠物自动回复
  3. 发送语音消息

    • 长按麦克风按钮
    • 显示录音状态和时长
    • 松开按钮停止录音
    • 语音消息显示在聊天区域
  4. 管理聊天记录

    • 点击"清空"按钮
    • 确认后清空所有记录
    • 记录自动保存到本地

文件修改清单

新增文件

  • components/chat-dialog/chat-dialog.js
  • components/chat-dialog/chat-dialog.wxml
  • components/chat-dialog/chat-dialog.wxss
  • components/chat-dialog/chat-dialog.json
  • components/chat-dialog/README.md

修改文件

  • components/floating-pet/floating-pet.js - 修改点击事件
  • pages/index/index.js - 添加聊天窗口控制
  • pages/index/index.wxml - 添加聊天组件
  • pages/index/index.json - 注册聊天组件

注意事项

  1. 权限要求

    • 语音功能需要录音权限
    • 首次使用会请求授权
  2. 兼容性

    • 使用新版微信API
    • 支持微信小程序基础库2.0+
  3. 性能优化

    • 聊天记录限制50条
    • 自动清理过期记录
    • 使用本地存储
  4. 用户体验

    • 平滑的动画效果
    • 直观的操作反馈
    • 友好的错误提示

后续优化建议

  1. 功能增强

    • 添加表情包支持
    • 支持图片消息
    • 添加消息撤回功能
    • 实现更智能的回复算法
  2. 性能优化

    • 消息分页加载
    • 图片压缩处理
    • 缓存优化
  3. 用户体验

    • 添加消息提醒
    • 支持消息搜索
    • 自定义宠物回复
    • 多主题切换

测试建议

  1. 功能测试

    • 文字消息发送和接收
    • 语音录制和播放
    • 聊天记录保存和加载
    • 清空记录功能
  2. 兼容性测试

    • 不同设备尺寸
    • 不同微信版本
    • 网络环境变化
  3. 性能测试

    • 大量消息处理
    • 内存使用情况
    • 存储空间占用

功能已完整实现,可以正常使用!

Released under the MIT License.