[uni-app]聊天App实例

article/2025/9/22 7:23:52

项目简介

基于uni-app+vue+vuex+uniPop+swiper等技术开发的仿微信聊天室uniapp-chatroom项目,类似vue及小程序api语法使开发更加方便,实现了发送图文消息、表情(gif动图),图片预览、地图位置、红包、仿微信朋友圈等功能

效果图

在H5 / 小程序 / App端测试效果如下 (后续大图统一展示App端)
未标题-1.png

技术实现

  • 编辑器:HBuilder X
  • 技术框架:uni-app + vue
  • 状态管理:Vuex
  • iconfont图标:阿里字体图标库
  • 自定义导航栏 + 底部Tabbar
  • 弹窗组件:uniPop(基于uni-app封装模态弹窗)
  • 测试环境:H5端 + 小程序 + App端(三端均兼容)
  • 高德地图:vue-amap

001360截图20191009170834767.png

004360截图20191009171029165.png

006360截图20191009171125303.png

007360截图20191009171142646.png

009360截图20191009171303741.png

010360截图20191009171331558.png

012360截图20191009171425392.png

013360截图20191009171504766.png

015360截图20191009171700229.png

022360截图20191009173308974.png

020360截图20191009172918501.png

024360截图20191009173418452.png

026360截图20191009173557597.png

027360截图20191009173618772.png

029360截图20191009174056931.png

引入公共组件及样式

import Vue from 'vue'
import App from './App'// >>>引入css
import './assets/fonts/iconfont.css'
import './assets/css/reset.css'
import './assets/css/layout.css'// >>>引入状态管理
import store from './store'
Vue.prototype.$store = store// >>>引入公共组件
import headerBar from './components/header/header.vue'
import tabBar from './components/tabbar/tabbar.vue'
import popupWindow from './components/popupWindow.vue'
Vue.component('header-bar', headerBar)
Vue.component('tab-bar', tabBar)
Vue.component('popup-window', popupWindow)// >>>引入uniPop弹窗组件
import uniPop from './components/uniPop/uniPop.vue'
Vue.component('uni-pop', uniPop)Vue.config.productionTip = false
App.mpType = 'app'const app = new Vue({...App
})
app.$mount()

uniapp+vuex实现登录拦截

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {user: uni.getStorageSync('user'),token: uni.getStorageSync('token'),},mutations: {// 存储tokenSET_TOKEN(state, data) {state.token = datauni.setStorageSync('token', data)},// 存储用户名SET_USER(state, data) {state.user = datauni.setStorageSync('user', data)},...},
})
<script>import { mapState, mapMutations } from 'vuex'import util from '../../utils/util.js'export default {data() {return {formObj: {},}},computed: {...mapState(['user', 'token'])},mounted() {// 判断是否有登录if(this.user){uni.redirectTo({url: '/pages/index/index'})}},methods: {// 提交表单handleSubmit(e) {...}}}
</script>

uniapp实现朋友圈功能

如何实现微信朋友圈页面向下滚动,顶部导航栏由透明变背景色,通过onPageScroll函数实现自定义导航上下滑动自动调整导航栏的透明度
360截图20191010014039187.png
360截图20191010014114837.png

/*** @tpl 朋友圈模板*/<template><view class="flexbox flex_col"><header-bar :isBack="true" title="朋友圈" :bgColor="{background: headerBarBackground}" transparent><text slot="back" class="uni_btnIco iconfont icon-arrL"></text><text slot="iconfont" class="uni_btnIco iconfont icon-publish mr_5" @tap="handlePublish"></text></header-bar><view class="uni__scrollview flex1"><view class="uni-friendZone">...</view></view></view>
</template><script>export default {data() {return {headerBarBackground: 'transparent'}},onPageScroll : function(e) {// console.log("滚动距离为:" + e.scrollTop);this.headerBarBackground = 'rgba(65,168,99,'+e.scrollTop / 200+')'},methods: {...}}
</script><style scoped></style>

uniapp滚动至聊天页面底部

在uni-app将聊天信息滚动到底部有些不好实现,可以借助scroll-view组件scroll-into-view属性,不过只能设置一次,不能动态设置。
只能通过动态改变scroll-top来实现
360截图20191010020527193.png
uni-app通过判断聊天内容高度和scroll-view高度的大小设置滚动距离

<scroll-view id="scrollview" scroll-y="true" :scroll-top="scrollTop" style="height: 100%;"><view class="uni-chatMsgCnt" id="msglistview"><view class="msgitem">xxx</view><view class="msgitem">xxx</view><view class="msgitem">xxx</view>...</view>
</scroll-view>
export default {data() {return {scrollTop: 0,...}},mounted() {this.scrollToBottom()},updated() {this.scrollToBottom()},methods: {// 滚动至聊天底部scrollToBottom(t) {let that = thislet query = uni.createSelectorQuery()query.select('#scrollview').boundingClientRect()query.select('#msglistview').boundingClientRect()query.exec((res) => {// console.log(res)if(res[1].height > res[0].height){that.scrollTop = res[1].height - res[0].height}})},...}
}

基于uniapp开发聊天室的介绍就到这里,后续继续为大家分享实战项目,希望多多支持。??

项目中用到的自定义弹窗、自定义导航栏可参看下面链接。
uni-app自定义Modal弹窗组件|仿ios、微信弹窗效果
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条


http://chatgpt.dhexx.cn/article/dfTlDlwQ.shtml

相关文章

开发社交聊天APP需要注意什么?如何快速开发聊天功能

随着互联网的发展&#xff0c;人们的沟通方式也在悄悄发生变化&#xff0c;由原来的面对面沟通&#xff0c;发展为网上沟通。让大家日常生活的通讯越来越方便了&#xff0c;各种APP层出不穷。那么&#xff0c;想开发一款社交聊天并进行运营&#xff0c;需要注意哪些方面&#x…

比较好用的聊天交友软件?最受年轻人欢迎的APP在这

现在都有哪些比较火,比较好用的聊天交友软件?移动社交是一件越来越普遍的事情&#xff0c;人们可以通过互联网&#xff0c;在社交软件上认识众多的一样的有趣人群&#xff0c;在国内都有哪些**的交友app哪个好??在中国在中国最受年轻人欢迎的APP又有哪些呢? 微信 微信可以…

程序员的时钟/原生抖音罗盘时钟代码分享/ 罗盘文字时钟软件非常火 /文字时钟

原生抖音罗盘时钟代码分享 罗盘文字时钟软件非常火 文字时钟 本站给大家分享这款就是通过原生j来s实现的文字时钟源码&#xff0c;有喜欢的朋友可以下载哦&#xff0c;无需安装&#xff0c;上传访问即可使用 简单实现&#xff1a;https://sucaiip.com/time-302.html

Android实现模拟时钟(简单+漂亮)--时针、分针、秒针

前言 前不久在网上看见Android实现的模拟时钟&#xff0c;感觉十分有意思&#xff0c;这里是地址&#xff1a; http://www.eoeandroid.com/forum.php?modviewthread&tid58324可惜的是这种方式没有 秒表。笔者突然对其有了兴趣&#xff0c;也想去实现以下自己的模拟时钟。折…

网页电子时钟

如图就是一个简易的网页电子时钟&#xff0c;利用Javascript和 html和 css就可以制作 <div class"wrapper"><div class"time-box"><div class"hour"></div><div class"sec"></div></div>&…

时钟啊时钟

效果图 JS /*** color --color 父级定义颜色 css直接使用变量*/ import { useState, useEffect } from react; import styles from ./style.less const index () > {const [time, setTime] useState({hours: 00,minutes: 00,seconds: 00})useEffect(() >{countDown() …

模拟钟表的手机软件_手机时钟软件推荐

下载 生活服务|47.3MB 更新时间&#xff1a;2019-04-04 12:04:18 评分&#xff1a;7 概要&#xff1a;抖音文字云时钟app是一款异常火爆的数字时钟软件&#xff0c;该软件在抖音上已经被众多小伙伴种草了&#xff0c;它拥有非常炫酷的背景&#xff0c;设置安装起来也非常简便&a…

抖音文字时钟壁纸html,抖音文字时钟

抖音文字时钟是一款为最近非常火的珍惜时间打造的钟表&#xff0c;有记录时间的功能也有很强大的警示作用&#xff0c;告诉我们时间的重要性&#xff0c;它有很多的模式可以调节使用&#xff0c;展现出自己喜欢的需要的时钟模式来&#xff0c;有需要的用户们就来这里下载吧。 温…

实现时钟特效

需求&#xff1a; 显示年、月、日、星期和二十四进制的时钟特效&#xff01; 代码&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>时钟特效</title><style> body{backgrou…

超级实用的动态时钟。

绘制时钟 时钟动态效果的实现基于canvas画布的重绘&#xff0c;也就是说每秒都要在canvas画布上重新绘画一遍图形&#xff0c;在配合定时器即可实现动态效果。而实现此时钟主要有两个步骤&#xff0c;1是表盘的绘制&#xff0c;2是指针的绘制。 绘制时钟表盘 时钟表盘的刻度…

教你制作 简易罗盘动态时钟 网页文件

简易罗盘动态时钟&#xff08;含html文件和源码&#xff09; 快来获取 首先给大家展示成品截图 首选展示index.txt代码 <动态罗盘时钟> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"v…

用前端代码编写一个动态的罗盘时钟

用前端代码编写一个动态的罗盘时钟 前言一、代码如下1.index2.js3.css 页面效果 前言 今天给大家分享一个罗盘时钟的前端代码&#xff0c;喜欢的小伙伴帮忙点赞一下噢&#xff01; 一、代码如下 1.index <!DOCTYPE html> <html lang"en"> <head>…

android时钟字体,文字时钟下载-文字时钟 安卓版v1.6.1-PC6安卓网

文字时钟屏保app是一款功能齐全又实用的时钟显示软件&#xff0c;文字时钟屏保app主界面是一个自带时间、日期、天气的LED数字时钟和模拟时钟&#xff0c;全屏显示翻页时钟&#xff0c;酷炫美观又实用。这款文字时钟屏保app可以一直保持显示状态。 软件介绍 文字时钟屏保app是一…

日历与时钟

目录 公历 黑色星期五 生物韵律 公历 在公历中&#xff0c;当年份为4的整数倍&#xff0c;但不是100的整数倍时&#xff0c;会出现闰年的现象。 y40 mod(y,4) 0 && mod(y,100)||mod(y,400)0 输出当时的年、月、日、时、分、秒 f%6d %6d %6d %6d %6d %9.3f\n cclock …

手机时钟软件推荐,创意时钟APP介绍

手机上有好用的时钟APP&#xff0c;时钟软件哪个好用? 每个人的手机屏幕都有着自己独特的设计&#xff0c;而时钟软件能够为用户的手机再增添一些风采和魅力&#xff0c;更有专为来年人设计的大字体桌面时钟&#xff0c;更加的清晰直观&#xff0c;各种特色的桌面时钟app中都有…

各种好用的在线时钟、网页时钟汇总推荐集合

电脑全屏时钟网页版https://www.sioe.cn/rili/quanpingshizhong.php 网页时钟http://www.gz7k.com/ 在线时钟 - 现在几点https://naozhong.net.cn/shijian/ 桌面时钟_在线极简时钟同步北京时间网提供桌面时钟&#xff0c;在线极简同步时钟。https://www.beijing-time.org…

html在线时钟

html在线时钟 <script src"https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script><!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style…

html 、css、js动态文字时钟

效果思路是利用css的transform属性和js&#xff0c;来实现时钟布局和旋转。 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…

显示农历天气时钟小部件下载_文字云时钟安卓版下载|文字云时钟app下载_v1.0

文字云时钟是一款流行便捷简洁时钟服务软件&#xff0c;为用户提供桌面时钟、数字时钟、悬浮时钟、秒表计时等多种功能&#xff0c;喜欢的朋友赶快点击下载吧&#xff01; 软件介绍 文字云时钟word clock软件是一款生活实用的文字时钟。文字云时钟app既可以当做类似LED效果的…

[乐意黎]某音上超酷炫的 Word Clock 文字云时钟屏保配置

乐意黎最近在某音上看到 Wordclock 屏保非常的火爆&#xff0c;看上去非常有意思。 哪么 Wordclock屏保怎么弄的&#xff1f;如何设置呢&#xff1f; 电脑怎么设置动态时钟屏保 实现这样的动态时间屏保的效果主要是使用了一款叫做word clock的第三方插件&#xff0c;《Word C…