uniapp小程序接入腾讯IM聊天

  1. 腾讯IM中创建项目 拿到AppID 与 密钥 

  1. 下载demo 将debug 文件夹拖到自己项目中 

在第一个js文件中填入自己项目的APPID 与密钥

  1. 下载(tim-wx-sdk 上传文件 的依赖 看项目所需

import TIM from 'tim-wx-sdk';
import TIMUploadPlugin from 'tim-upload-plugin';
let options = {// SDKAppID: 1400770479SDKAppID: 1400372093 // 接入时需要将0替换为您的即时通信 IM 应用的 SDKAppID
};
// 创建 SDK 实例,`TIM.create()`方法对于同一个 `SDKAppID` 只会返回同一份实例
let tim = TIM.create(options); // SDK 实例通常用 tim 表示// 设置 SDK 日志输出级别,详细分级请参见 setLogLevel  https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#setLogLevel 接口的说明</a>
tim.setLogLevel(0); // 普通级别,日志量较多,接入时建议使用
// tim.setLogLevel(1); // release 级别,SDK 输出关键信息,生产环境时建议使用// 注册腾讯云即时通信 IM 上传插件
tim.registerPlugin({'tim-upload-plugin': TIMUploadPlugin
});
Vue.prototype.tim = tim
Vue.prototype.TIM = TIM
// v2.22.0 起支持 uni-app 打包 native app 时使用离线推送插件
// 请注意!应合规要求,在用户同意隐私协议的前提下,登录成功后 SDK 会通过推送插件获取推送 token,并将推送 token 传递至后台(若获取 token 失败则会导致离线推送无法正常使用)
// const TUIOfflinePush = uni.requireNativePlugin("TencentCloud-TUIOfflinePush");
tim.registerPlugin({// 'tim-offline-push-plugin': TUIOfflinePush,'offlinePushConfig': {// huawei'huaweiBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID// xiaomi'xiaomiBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID'xiaomiAppID': '', // 小米开放平台分配的应用 APPID'xiaomiAppKey': '', // 小米开放平台分配的应用 APPKEY// meizu'meizuBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID'meizuAppID': '', // 魅族开放平台分配的应用 APPID'meizuAppKey': '', // 魅族开放平台分配的应用 APPKEY// vivo'vivoBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID// oppo'oppoBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID'oppoAppKey': '', // oppo 开放平台分配的应用 APPID'oppoAppSecret': '', // oppo 开放平台分配的应用 Secret// ios'iosBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID}
});

登录腾讯IM

TencentIMlogin() {uni.getStorage({ key: 'userInfo',success: (res) => {this.username = res.data.userIdlet userSig = genTestUserSig(this.username).userSiglet promise = this.tim.login({userID: this.username,userSig: userSig});promise.then(function(imResponse) {console.log(imResponse.data, '登录成功'); // 登录成功if (imResponse.data.repeatLogin === true) {// 标识帐号已登录,本次登录操作为重复登录。v2.5.1 起支持console.log(imResponse.data.errorInfo);}}).catch(function(imError) {console.warn('login error:', imError); // 登录失败的相关信息});}})}

发送单聊消息

Go() {if (!this.isReady) return//  createTextMessage 创建一个文本信息//  conversationType : c2c 单聊           GROUP 群聊//     payload (载荷): 存放聊天消息 文本 text属性let message = this.tim.createTextMessage({// to: 'ef985c7e92604ca3b5daa29e039d8236',to: "7b65c4ddadf04a128223942c9fd16ad4",conversationType: 'GROUP',payload: {text: this.text}});this.messages.push(message)console.log(message);// 发送消息this.tim.sendMessage(message);},

发送群组消息

var message = this.tim.createTextAtMessage({to: this.orderid,conversationType: this.TIM.TYPES.CONV_GROUP,payload: {text: this.text,},});// 2. 发送消息let promise = this.tim.sendMessage(message);promise.then((imResponse) => {// 发送成功this.messages.push(message)this.scrollToBottom()uni.setStorage({key: 'messages',data: this.messages})console.log(imResponse);}).catch(function(imError) {console.log(imError);// 发送失败uni.showModal({title: '提示',content: '医生还未进入诊室,无法发送消息!',success: function(res) {if (res.confirm) {// 执行确认后的操作} else {// 执行取消后的操作}}})});

发送图片

GoImage() {uni.chooseImage({count: 2,sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album'], // 从相册选择success: (res) => {let message = this.tim.createImageMessage({// to: '5MYfeMTrSEvmAF1cLct',to: this.orderid,conversationType: this.TIM.TYPES.CONV_GROUP,payload: {file: res},onProgress: function(event) {console.log('file uploading:', event)}});// 2. 发送消息let promise = this.tim.sendMessage(message);// this.messages.push(message)    promise.then((imResponse) => {this.messages.push(message)this.scrollToBottom()uni.setStorage({key: 'messages',data: this.messages})console.log(message);// 发送成功console.log(imResponse);}).catch((imError) => {// 发送失败console.warn('sendMessage error:', imError);});}});},
// 点击图像全屏bigImg(url) {console.log(111)this.bigFlag = !this.bigFlagwx.previewImage({urls: [url], //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了current: '', // 当前显示图片的http链接,默认是第一个})},

拉取历史消息

// 拉取历史消息GetMessageList(groupid) {let promise = this.tim.getMessageList({conversationID: 'GROUP' + groupid});promise.then((imResponse) => {const messageList = imResponse.data.messageList; // 消息列表。console.log('messageList', messageList)this.messages = messageListthis.scrollToBottom()const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。const isCompleted = imResponse.data.isCompleted;// 表示是否已经拉完所有消息isCompleted 为 true 时,nextReqMessageID 为 ""。});},

监听收到消息

let onMessageReceived = (e) => {let data = JSON.parse(e.data[0].payload.data.videoCall)};this.tim.on(this.TIM.EVENT.MESSAGE_RECEIVED, onMessageReceived, this);

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

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

相关文章

用最通俗易懂的语言告诉你什么是信息熵

图和公式都挂了&#xff0c;想看原文的小伙伴去公众号后台回复”信息熵”即可 假设有个考试作弊团伙&#xff0c;需要连续不断地向外传递4选1单选题的答案。直接传递ABCD的ascii码的话&#xff0c;每个答案需要8个bit的二进制编码&#xff0c;从传输的角度&#xff0c;这显然有…

外景黑纱婚纱照高级感十足

婚纱照不止有自然小清新(&#xff06;还可以暗黑高级 看腻了千篇一律的白色婚纱礼服 炎追求个性、与众不同的仙女们不妨尝试一下黑色婚纱&#x1f5a4; 黑纱不一定只有酷和暗黑 也有法式赫本风的复古优雅 满满的氛围感和高级感 &#x1f3ac; 女生的拖尾黑裙神秘又优雅 …

福州一般拍一套婚纱照要多少钱

随着婚纱摄影行业发展以来&#xff0c;近几年选择婚纱照旅拍的准新人越来越多了。相信每一位新人对于这些都是第一次没有经验的&#xff0c;所以也不太清楚行情&#xff0c;不知道选择怎么样的套餐&#xff0c;那小编就来科普一下现在旅拍的行情&#xff0c;让你们在选择婚纱照…

晒一下我和老婆的婚纱照!

两人一起的 老婆单人的 老婆就是大名鼎鼎的晴天有雨啊&#xff01; 我单人的

冬天拍婚纱照注意事项 拍出养眼婚纱照

寒冷的冬天来了&#xff0c;对于北方人就要迎接雪花了&#xff0c;在寒冷的冬季进行婚纱摄影&#xff0c;会美丽但是也会“冻人”哦!下面 南京婚纱摄影工作室给大家介绍冬天拍婚纱照注意事项&#xff0c;准新人们可以参考一下哦! 冬天拍婚纱照注意事项 拍出养眼婚纱照 婚纱照 冬…

国内唯美花海 新娘绝美婚纱照

每位新郎都希望有一位仙女般的妻子&#xff0c;新娘也都希望自己是花丛中的花仙子。一组浪漫唯美的花海婚纱照无疑是诠释新人们花仙子梦的最好渠道。下面 青岛摄影工作室 就来给大家盘点一下国内那些唯美的花海。 1、云南罗平油菜花 云南省的罗平。从每年的二月份开始就进入了油…

W ndoWS十p啥意思,婚纱照相册10P是什么意思?入册多少张最合适?

原标题&#xff1a;婚纱照相册10P是什么意思&#xff1f;入册多少张最合适&#xff1f; 在预定婚纱照时&#xff0c;都会谈及相册P数&#xff0c;尺寸大小等等一些相册信息&#xff0c;一般相册的页数有7、10、12、15、20p还有30p的,而我们常见就为10P&#xff0c;那么&#xf…

婚纱照效果 取景很重要

新人们都希望可以有绝美的婚纱照&#xff0c;却又为自身没有绝对的优势而感到沮丧。其实漂亮的婚纱照通过选择适合景点选取一样可以拍出来。 婚纱照应该在选景的时候注意哪些问题&#xff0c;很多人渴望拥有类似杨幂结婚时一样的明星婚纱照&#xff0c;首先在选景的时候&#…

简约复古婚纱照拍摄攻略

当下拍婚纱照也要紧跟时尚潮流&#xff0c;当下拍婚纱照流行什么呢&#xff1f;简约、复古是当下婚纱照拍摄关键词。将时尚复古元素相结合也是当下最受年轻人亲睐的婚纱照拍摄形式&#xff0c;那么如何拍摄简约复古婚纱照呢&#xff1f;下面就跟无锡婚纱摄影一起来看看简约复古…

Photoshop透明婚纱照抠图处理

透明婚纱照抠图处理教程&#xff1a;先需要用钢笔等工具把人物部分抠出来包括婚纱部分。然后把抠出的人物图层复制一层&#xff0c;在通道选区婚纱部分较为清晰的通道并调出选区&#xff0c;回到图层面板后把选区反选按删除高光部分以外的图像&#xff0c;得到的图像就是我们抠…

九宫格摆法_九宫格婚纱照摆法图片与技巧

婚纱照挂法已不再是单一的排版&#xff0c;九宫格婚纱照开始逐渐流行在新人之中。下面来看看九宫格婚纱照摆法图片&#xff0c;以及九宫格婚纱照摆法的技巧。 一、九宫格婚纱照摆法 九宫格最常见的挂法就是方方正正的33的形式&#xff0c;当然除了九宫格的挂法之外&#xff0c;…

福州黑白风格的婚纱照拍摄介绍

新人们有没有想过在老一辈的婚纱照都是黑白的色彩但是一样能够拍摄出非常好的效果&#xff0c;新人们有没有想要试一试黑白风格的婚纱照呢&#xff0c;今天就让福州婚纱摄影价格最实惠的婚纱摄影工作室来和您说说吧&#xff01; 光源的选择   拍摄黑白风格的婚纱照&#xff…

java+springboot影楼婚纱照预约系统ssm

为了扩大影楼的生意&#xff0c;提高影楼的宣传形象&#xff0c;方便客户在线预约套系等&#xff0c;我们设计一款关于影楼的网站。设计婚纱照预约系统的目的是为实现客户与影楼预约&#xff0c;明细化工作人员分配、提高工作效率&#xff0c;节约时间及其他杂项成本。本系统基…

婚纱照选场地

婚纱照 内场1风格&#xff1a;复古风 内场2风格 :花场 内场3风格&#xff1a;酷酷的玩游戏机的 外场&#xff1a;马场&#xff08;马厩、吉普车、铁罐子、草堆&#xff09;

响应式织梦模板婚纱照摄影类网站

模板介绍&#xff1a; 织梦内核开发的模板&#xff0c;该模板属于企业通用类、婚纱摄影、艺术摄影类企业都可使用&#xff0c; 这款模板使用范围极广&#xff0c;不仅仅局限于一类型的企业&#xff0c;你只需要把图片和产品内容&#xff1b; 换成你的&#xff0c;颜色都可以修改…

PS调出春夏外景婚纱照

效果图 先来看看原图和夏季的效果图 先看看原图 教程终于来咯 原图暗部太深&#xff0c;需要将暗部提亮。可以把暗部选区选出来。为了精确选择暗部选区&#xff0c;我利用计算命令如上图所示。最后得到暗部的选区。 上图得到了暗部选区&#xff0c;添加曲线调整图层提亮如图&am…

突变!微软将结束对Office Android应用的支持

整理 | 祝涛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 早在6月底&#xff0c;就有报道称&#xff0c;微软可能计划将Chromebook上的Office用户转移到网络上。直到近日&#xff0c;微软正式宣布&#xff0c;将于9月18日起停止支持Chrome OS系统上的安卓版Of…

Python代码在Pycharm中不起作用,但在Jupiter Notebook中执行良好

代码 import requests from apscheduler.schedulers.background import BackgroundScheduler from datetime import datetimecontent {} content[day1] "早上好/:sun/:sun,\n人生最怕的就是试试、等等 、看看&#xff0c;最大的失败不是跌倒&#xff0c;而是从来不敢奔…

华为云鲲鹏云服务抢占云上多元算力新赛道

​ 2019年很快&#xff0c;一晃就到了年底。作为5G元年&#xff0c;从年初的兴奋、期盼&#xff0c;年底的一步步走近&#xff0c;5G变得越来越真实。与此同时&#xff0c;业界也慢慢形成一种共识&#xff1a;5G对企业的改变会大于对消费者的改变。也可以说&#xff0c;随着5G…