系统分析设计期末大项目——闲得一币TimeForCoin小程序前端小程序项目地址_闲得一币概述实时会话系统包括两大部分:消息管理系统和会话系统。其中“消息”可以定义为一系列会话(即双方之间会话)的集合。通过获取消息列表,我们可以看到很多个消息,每一个消息都有对应的消息id。而通过消息的id,我们可以获取一系列会话,如下:消息管理页消息管理页将获取的消息分为个人消息以及系统消息。系统消息不能够被回复而个人消息可以。在Message.json
中我们需要添加:"enablePullDownRefresh": true
以允许下拉刷新。而对于下拉刷新,我们可以通过onPullDownResfresh()
函数实现。除此之外,我们还需要在onShow
函数中添加信息获取的功能(还要有登录状态的判断)。onShow函数 onShow: async function() { this.setData({ hasUserInfo: app.globalData.hasUserInfo }) //登录判断 if (!this.data.hasUserInfo) { wx.showToast({ title: '您未登录~', image: '/images/icons/error.png' }) setTimeout(function() { // 返回 wx.switchTab({ url: '/pages/index/index', success: function(res) {}, fail: function(res) {}, complete: function(res) {}, }) }, 1000); } await this.loadMessage(1) },
onPullDownRefresh函数onPullDownRefresh: async function () { if(!this.data.isLoading){ await this.loadMessage(null) } },
至于为什么是onShow
而不是onLoad
,因为onShow
函数在你离开该页面重新进入(可以通过onNavigateBa开通牛仔裤小程序电话:4006-838-530ck
返回)该页面的时候也会执行一次。消息的状态包括未读
和已读
,如果使用onLoad
函数从会话列表页面返回时未读
不会更新为已读
。在获取消息的函数loadMessage
内,我们需要进行https
请求,并根据请求的结果(状态码以及数据)进行消息的显示。如果状态码不为200
,需要进行异常处理,这里是显示toast。而对于获取的消息,我们根据当前用户选择的是个人消息还是系统消息进行分类,如果选择个人消息就只显示个人消息。除此之外,还需要moment.js
进行时间数据的解析。当然,除了时间,所有的数据都要进行正确显示。当然了,这是个异步函数,因为其中需要等待https
请求的结果。消息页比较有挑战性的是自动刷新ScrollView
到底端,使得有新的信息来的时候会自动显示。loadMessage函数loadMessage: async function(page) { this.setData({ isLoading: true }) if(page != null){ this.data.currentPage = page this.data.systemMessage = [] this开通20-30万小程序电话:4006-838-530.data.chatMessage = [] } else{ this.data.currentPage++ } const res = await server.request('GET', 'mes