uniapp的uni-im 即时通信使用教程【用户与商家对话、聊天 / 最新 / 最全 / 带源码 / 教程】

目录

    • 使用场景
      • 用户图片
      • 商家图片
    • 官方文档
      • 官方文档地址
      • 插件地址
    • 项目创建uniCloud开发环境
      • 申请开发环境
      • 申请完后
    • 概括
    • 开始使用
    • 步骤1
      • App.vue
    • 步骤2
    • 找到软件登录图片
      • 找到软件登录接口
      • 登录源码如下
    • 步骤3
      • 找到软件注册图片
      • 注册源码如下
    • 步骤4
      • 找到index.vue首页
        • 图片
      • index.vue源码如下
      • 角标图片![请添加图片描述](https://img-blog.csdnimg.cn/direct/b3527f8065304179b3e5dcc0b28ec792.png)
    • 步骤5
      • 使用页面detail.vue
        • 图片
      • 源码如下
    • 步骤6
      • pages.json图片
    • 步骤7
    • 最后

使用场景

用户图片

请添加图片描述
请添加图片描述

商家图片

请添加图片描述

下载完插件,自动配置插件的路由,也就是想要的商家列表页面,和用户列表页面
请添加图片描述

官方文档

官方文档地址

文档要看仔细,一会要用!!!

uniapp官方:https://doc.dcloud.net.cn/uniCloud/uni-im.html

插件地址

插件地址:https://ext.dcloud.net.cn/plugin?name=uni-im

项目创建uniCloud开发环境

申请开发环境

注意:我这个项目是申请的阿里云的开发环境,要用HBuilder X的账号申请,阿里云开发环境,这个申请过程不是我弄的,后端账号给的我。

申请完后

1.登录HBuilder X刚才申请的账号

2.点击项目根目录,最外层的文件,在HBuilder X里面,左击,创建开发环境uniCloud,找到申请的阿里云,这就关联到自己HBuilder X账号申请的阿里云环境

图片:
请添加图片描述

概括

1.首先,这个过程,即时通信也有登录,注册过程,这个两个过程
必须软件的账号登录和注册同时的,也就是说,登录和注册,都要调用即时通信注册接口!

2.在首页挂在登录方法

3.使用页面跳转即可

开始使用

步骤1

App.vue

引入文件

<script>//1. 导入统一身份信息管理模块import uniIdPagesInit from '@/uni_modules/uni-id-pages/init.js';//2. 导入uniIm的Utils工具类import uniImUtils from '@/uni_modules/uni-im/common/utils.js';export default {onLaunch: function() {//3. 初始化uni身份信息管理模块uniIdPagesInit();//4. 初始化uniImuniImUtils.init();},onShow: function() {//3. 初始化uni身份信息管理模块uniIdPagesInit();//4. 初始化uniImuniImUtils.init();},};
</script>

步骤2

找到软件登录图片

请添加图片描述

找到软件登录接口

软件登录接口,调用即时通信登录接口

登录源码如下

<template><view class=""><view class="" @click="formSubmit">登录</view></view>
</template><script>export default{methods:{/*登录方法*/formSubmit() {this.disLogin = truelet self = this;let formdata = {mobile: self.formData.mobile,}let url = '';uni.showLoading({title: '正在提交'});self._post(url,formdata,result => {uni.setStorageSync('token', result.data.token);uni.setStorageSync('user_id', result.data.user_id);// 调用即时通信注册接口self.registerUniIm(result.data.token);},false,() => {uni.hideLoading();self.disLogin = false});},// 调用即时通信注册接口,后端要,参数传好,和后端协调registerUniIm(token) {let self = this;let userInfo = uni.getSystemInfoSync();self._post('user.useruniim/uniImLogin', {token:token,uniPlatform:userInfo.uniPlatform,appId:userInfo.appId,deviceId:userInfo.deviceId}, function(res) {console.log(res);});},}}
</script>

步骤3

找到软件注册图片

同样,也要调用即时通信注册接口!!

我这个是验证码登录,你的要是注册也要调用即时通信接口

请添加图片描述

注册源码如下

<template><view class=""><view class="" @click="formSubmit">注册</view></view>
</template><script>export default{methods:{/*注册方法*/formSubmit() {this.disLogin = truelet self = this;let formdata = {mobile: self.formData.mobile,}let url = '';uni.showLoading({title: '正在提交'});self._post(url,formdata,result => {uni.setStorageSync('token', result.data.token);uni.setStorageSync('user_id', result.data.user_id);// 调用即时通信注册接口self.registerUniIm(result.data.token);},false,() => {uni.hideLoading();self.disLogin = false});},// 调用即时通信注册接口,后端要,参数传好,和后端协调registerUniIm(token) {let self = this;let userInfo = uni.getSystemInfoSync();self._post('user.useruniim/uniImLogin', {token:token,uniPlatform:userInfo.uniPlatform,appId:userInfo.appId,deviceId:userInfo.deviceId}, function(res) {console.log(res);});},}}
</script>

步骤4

找到index.vue首页

图片

请添加图片描述
请添加图片描述

index.vue源码如下

<template></template><script>// 要记得引入哦~// 引入2下面import uniImUtils from '@/uni_modules/uni-im/common/utils.js';//引入2	uniImMethodsimport uniIm from '@/uni_modules/uni-im/lib/main.js';export default {onShow() {// this.getTabBarLinks(); // 底部导航注定义的函数释掉// 当前时间,毫秒时间戳var timestamp = (new Date()).valueOf(); // 1604297892942// console.log(timestamp,'毫秒时间戳');// 获取过期时间	毫秒时间戳let tokenExpiredUnIm = uni.getStorageSync("tokenExpiredUnIm")let newTime = tokenExpiredUnIm - timestamp;if (!tokenExpiredUnIm && newTime < 3600000) {// 在首页	调用即时通信	登录接口this.loginUniIm();}// console.log(newTime, '新时间');// 下面看自己需求加不加。都可以let unreadCount = uniIm.conversation.unreadCount();console.log(unreadCount,'获取未读总数量')// 下面是给底部tabar加角标消息数量uni.setStorageSync("unreadCount",unreadCount)if (unreadCount > 0) {uni.setTabBarBadge({index: 2, // text: String(unreadCount), text: unreadCount,});} else { uni.removeTabBarBadge({index: 2 });}},methods: {// 在首页	调用即时通信	登录接口loginUniIm() {let self = this;let userInfo = uni.getSystemInfoSync();self._post('user.useruniim/uniImRegister', {uniPlatform: userInfo.uniPlatform,appId: userInfo.appId,deviceId: userInfo.deviceId}, async function(res) {console.log(res.data.newToken);let uniIdToken = res.data.newToken;await uniImUtils.login(uniIdToken)// console.log(uniIdToken.tokenExpired, '打印');// 获取过期时间		毫秒时间戳uni.setStorageSync("tokenExpiredUnIm", uniIdToken.tokenExpired)});},}};
</script>

角标图片请添加图片描述

步骤5

使用页面detail.vue

图片

用户联系商家按钮
请添加图片描述

源码如下

<template><view class="content"><view class="btns-wrap-lft-btn btns-wrap-lft-btn1" @click="goSiXin"><text>私信联系</text></view></view>
</template>
<script>//引入uniImMethodsimport uniIm from '@/uni_modules/uni-im/lib/main.js';export default {methods: {data() {return {store_im_id: ''}},onLoad() {this.getData();},methods: {/*获取数据*/getData() {let self = this;let product_id = self.product_id;uni.showLoading({title: '加载中'});self._get('product.product/detail', {product_id: product_id,url: self.url,visitcode: self.getVisitcode()},function(res) {// console.log(res.data.store_im_id);// 后端返回	对应的用户idself.store_im_id = res.data.store_im_id;});},goSiXin() {// 文档有下面这个方法,路由下载插件就自动配置好了!!!// uni.navigateTo({// 	url:'/uni_modules/uni-im/pages/chat/chat?user_id=' + 对应的用户id// })let store_im_id = this.store_im_id;uni.navigateTo({url: '/uni_modules/uni-im/pages/chat/chat?user_id=' + store_im_id})},}}};
</script>

步骤6

pages.json图片

请添加图片描述

步骤7

大功告成啦,哪里如果有遗漏,大家可以在评论区进行补充,感谢大家,这么久的陪伴!!!

最后

感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

佛山IBM System x3550 M4服务器维修检查

案例背景&#xff1a; 一家位于东莞的制造公司&#xff0c;在其佛山分厂中安装了一台IBM X3550 M4服务器作为其关键业务设备。该服务器负责管理和存储公司的生产数据、ERP系统和供应链数据。在生产过程中&#xff0c;该服务器突然发生了故障&#xff0c;导致佛山分厂的生产中断…

LT7911D是TYPE-C/DP或者EDP转2 PORT MIPI和LVDS加音频

1.概述&#xff1a; T7911D是一款高性能TYPE-C/DP/EDP转2 PORT MIPI或者LVDS的芯片&#xff0c;目前主要在AR/VR或者显示器上应用的很多&#xff0c;对于DP1.2输入&#xff0c;LT7911D可配置为1/2/4车道。自适应均衡化使其适用于长电缆应用&#xff0c;最大带宽可达21.6Gbps。…

编译android的C版本Lua库

本文讲述如何使用android studio 编译最新版本的Lua开源库),请自行下载。 我们提供的Demo,可以自行下载,工程结构如下: 本文编译的是Lua 5.4.6的版本,编译采用cmake的方式,我们支持编译静态库和动态库(我们在这一讲里:“Lua与***C在Android上的互调”是使用静态库)…

管理类联考——数学——真题篇——按知识分类——几何——解析几何

文章目录 解析几何2023真题&#xff08;2023-07&#xff09;-几何-解析几何-最值-画图求最值-两线相减求最大-联想三角形的“两边差小于第三边”&#xff0c;当为第三边为最大真题&#xff08;2023-19&#xff09;-几何-解析几何-最值-画图求最值-圆方程画出圆的形状-两点间距离…

实现两张图片的接缝线拼接

使用ORB算法检测特征点&#xff0c;并通过BFMatcher进行特征点匹配。然后&#xff0c;根据Lowes ratio test选择好的匹配点&#xff0c;并使用findHomography计算单应性矩阵。最后&#xff0c;使用warpPerspective将图像进行透视变换&#xff0c;然后将第二张图像粘贴到变换后的…

如何在PHP中使用WebSocket进行实时通信?

在PHP中使用WebSocket进行实时通信涉及到创建WebSocket服务器和与客户端建立WebSocket连接。以下是一般的步骤&#xff1a; 选择WebSocket库&#xff1a; 首先&#xff0c;您需要选择一个合适的PHP WebSocket库。一些流行的WebSocket库包括 Ratchet、ReactPHP、PHP-Websockets …

自动驾驶学习笔记(十九)——Planning模块

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 Planning作用 Planning内容 Plannin…

Python 爬虫之简单的爬虫(一)

爬取网页上所有链接 文章目录 爬取网页上所有链接前言一、基本内容二、代码编写1.引入库2.测试网页3.请求网页4.解析网页并保存 三、如何定义请求头&#xff1f;总结 前言 最近也学了点爬虫的东西。今天就先给大家写一个简单的爬虫吧。循序渐进&#xff0c;慢慢来哈哈哈哈哈哈…

Linux 操作系统 006-操作系统的启动与关闭

Linux 操作系统 006-操作系统的启动与关闭 本节关键字&#xff1a;Linux、操作系统的启动与关闭、运行级别 本节相关指令&#xff1a;shutdown、reboot、sync、init、man、help 关机/重启 命令说明shutdown -h now立即进行关机shutdown -h 11分钟后关机shutdown -r now现在重…

基于JNI 实现 嵌套 List 类型参数解析

基于JNI 实现 嵌套 List 类型参数解析 背景分析解决 背景 在前面两篇文章中&#xff0c;我们总结了Java 调用 C/C SDK 的几种方案&#xff0c;分享了JNI在实践过程中的一些踩坑点&#xff0c;而在这篇文章将继续分享针对Java List类型及其嵌套类型&#xff0c;我们的JNI如何接…

thingsboard mac docker install 安装

本文将介绍单机运行thingsboard的方法 1.安装docker与docker-compose 略 2.新建目录 新建任意一个目录&#xff0c;这将影响之后的docker容器组的命名 3.编辑yml文件 vi docker-compose.yml输入以下内容 version: 2.2 services:mytb:restart: alwaysimage: "things…

MCU中断嵌套风险

单片机中断嵌套是指在处理一个中断时&#xff0c;另一个中断发生&#xff0c;CPU会暂停当前中断的处理&#xff0c;转而去处理新的中断。当新的中断处理完毕后&#xff0c;CPU会回到之前的中断继续处理。这种方式称为中断嵌套。 在单片机中&#xff0c;中断嵌套可以通过以下步…

selenium 与 chromedriver安装

本文章向大家介绍selenium 安装与 chromedriver安装&#xff0c;主要包括selenium 安装与 chromedriver安装使用实例、应用技巧、基本知识点总结和需要注意事项供大家参考。 一、安装selenium 1、Selenium简介 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开…

计算机毕业设计 基于SpringBoot的二手物品交易管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

git代码管理学习文档

1.版本控制 每一版本都会发生变化 更新版本&#xff0c;回退版本 版本控制实际就是控制文件的变化 服务器端和每个人的电脑上都会记录版本的变化&#xff0c;也就是说整个团队都记录了版本的变化。 不需要连网&#xff0c;他是分布式的&#xff0c;在自己电脑上也可以操作。 …

centos离线安装mosquitto

1.x86_64架构centos7操作系统mosquitto包 本次真正要安装的机器是x86_64架构的AMD Ryzen 3 &#xff0c;操作系统是centos7 先找一台能联网的centos7机器 添加 EPEL 软件库 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm下载rpm包 …

[AIGC ~大数据] 深入理解Hadoop、HDFS、Hive和Spark:Java大师的大数据研究之旅

作为一位Java大师&#xff0c;我始终追求着技术的边界&#xff0c;最近我将目光聚焦在大数据领域。在这个充满机遇和挑战的领域中&#xff0c;我深入研究了Hadoop、HDFS、Hive和Spark等关键技术。本篇博客将从"是什么"、"为什么"和"怎么办"三个角…

《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

Rabbitmq消息重复消费问题(幂等性保障)

消息百分百投递架构 在《消息可靠性保证》篇章中&#xff0c;我通过生产者确认机制保障了消息会发送到MQ中&#xff0c;但是在生产者与MQ建立过程的时候出现了网络抖动&#xff0c;连接建立失败&#xff0c;生产者就感知不到MQ返回的ack/nack&#xff0c;无法完全保障消息投递…

modbus 通信协议介绍与我的测试经验分享

1、简介 Modbus 协议是一种通信协议&#xff0c;用于工业自动化系统中的设备间通信。该协议最初由 Modicon 公司开发&#xff0c;并于 1979 年发布。 Modbus 协议通过串行通信格式进行通信&#xff0c;在物理层上支持 RS-232、RS-422 和 RS-485 等多种通信方式。在协议层面&am…