微信聊天小程序——(四、聊天页面)

四、聊天页面

步骤一、聊天页面的搭建

效果图:

思路:

聊天页面的搭建

  • 首先在聊天页面获取我们所有的好友信息
  • 其次当点击我们对应好友,进入聊天页面
    注意传递我们此时的聊天记录表id,方便之后进行添加聊天记录
  • 聊天页面下方布局发送消息
    注意为传递参数的发送框
  • 获取我们发送消息,传递到我们的聊天记录表的记录中

在聊天页面中:

getChatRecord()

  // 功能:当跳转到聊天页面的时候,显示聊天信息
  // 思路:1.更加我们接收到的_id在聊天表中查询,返回查询值
  //      2.在wxml页面进行渲染

publishChat()

// 功能:当我们发布消息的时候,更新我们的数据库表中的消息
// 思路:1.首先根据页面接收到的值,获取这条消息的_id
//      2.新建一个空白数组,将我们需要记录的信息、聊天内容放到这个数组中
//      3.将这个数组放到我们存放聊天记录的record数组中
//      4.更新我们的数据库表格
//      5.更新之后,再次调用,使刚刚发送的消息出现
//      6.将我们的评论和输入消息内筒赋值为空

getInputValue(event)

// 功能:获取输入框的值

在js文件:

const app=getApp()
const util= require("../../utils/utils")

Page({


  data: {

  },

  onShow(){
    this.setData({
      userInfo: app.globalData.userInfo
    })
  },

  // 功能:当点击好友的时候,传输好友信息
  onLoad(options) {
    console.log(options.id)
    this.setData({
      recordId:options.id
    })

  this.getChatRecord();

  },

  // 功能:当跳转到聊天页面的时候,显示聊天信息
  // 思路:1.更加我们接收到的_id在聊天表中查询,返回查询值
  //      2.在wxml页面进行渲染
  getChatRecord(){

    var that = this;
    wx.cloud.database().collection('chat_record1').doc(that.data.recordId).get({
      success(res){
        console.log(res)
        that.setData({
          chatList: res.data.record
        })
      }
    })
  },


// 功能:当我们发布消息的时候,更新我们的数据库表中的消息
// 思路:1.首先根据页面接收到的值,获取这条消息的_id
//      2.新建一个空白数组,将我们需要记录的信息、聊天内容放到这个数组中
//      3.将这个数组放到我们存放聊天记录的record数组中
//      4.更新我们的数据库表格
//      5.更新之后,再次调用,使刚刚发送的消息出现
//      6.将我们的评论和输入消息内筒赋值为空 

  publishChat(){
    var that = this;
    wx.cloud.database().collection('chat_record1').doc(that.data.recordId).get({
      success(res){
        console.log(res)

        var record = res.data.record
        var msg = {}
        msg.userId = app.globalData.userInfo._id
        msg.nickName = app.globalData.userInfo.nickName
        msg.faceImg = app.globalData.userInfo.faceImg
        msg.openid = app.g
### 微信小程序聊天界面美化设计 #### 使用 Vant 组件库增强视觉效果 为了提高开发效率并确保一致性和美观度,在微信小程序中引入成熟的 UI 库是一个不错的选择。Vant 是由有赞团队开源的小程序组件库,提供了丰富的预设样式和交互模式,能够快速搭建出高质量的用户界面[^3]。 例如,对于聊天窗口的消息气泡,可以通过自定义 `van-cell` 来创建不同类型的对话框: ```html <van-cell class="chat-bubble"> <!-- 发送者消息 --> <view slot="title" wx:if="{{item.type === 'send'}}" style="text-align:right; color:#fff;background-color:#07c160;padding:8px;border-radius:12px;"> {{ item.content }} </view> <!-- 接收者消息 --> <view slot="title" wx:else style="background-color:#f9f9f9;color:#333;padding:8px;border-radius:12px;"> {{ item.content }} </view> </van-cell> ``` #### 自定义 WXSS 提升细节质感 除了利用现成的组件外,还可以通过编写特定的 WXSS 样式来进一步调整和完善聊天界面的效果。比如设置背景图片、改变字体大小或增加动画过渡等特性都能显著改善整体观感[^4]。 ```css /* 设置整个页面的主题色调 */ page { background-color: #ebebeb; } /* 定义消息列表容器 */ .message-list { padding-bottom: 50px; } /* 对话框圆角处理 */ .chat-bubble view[slot='title']{ border-radius: 12rpx !important; } ``` #### 结合 WebSocket 实现实时通讯流畅性 良好的用户体验不仅限于静态展示方面,还包括动态行为的表现力。当涉及到即时通信场景时,WebSocket 技术允许服务器主动向客户端推送数据更新,从而保证信息传递的速度和平滑程度[^1]。 ```javascript // 初始化 WebSocket 连接 const socketTask = wx.connectSocket({ url: 'wss://example.com/socket', }); socketTask.onMessage(function(res){ console.log('收到服务器内容:' + res.data); }); ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值