Flutter TIM 项目配置
目录
1. 设计说明
2. 参考资料索引
Flutter SDK
服务端 Rest API
腾讯后台
其他
3. TIM 整体架构
第一部分:APP 端
第二部分:腾讯服务器
第三部分:三方服务
第四部分:你自己的服务器
4. TIM SDK 集成
TUIK 含 UI 集成
优点
缺点
无 UI 集成
环境要求
支持平台
开始集成
本机环境
flutter 加入依赖
android 配置
IOS(Win系统不能运行IOS程序,跑Android)
小结
5. 创建应用 AppID密钥
第一步:创建应用
第二步:appid,密钥
第三步:功能丰富的管理后台
小结
博主wx:yuanlai45_csdn 博主qq:2777137742
后期会创建粉丝群,为同学们提供分享交流平台以及提供官方发送的福利奖品~
(目前已经有了各大官方提供的有奖活动哈~)
1. 设计说明

2. 参考资料索引
Flutter SDK
- flutter sdk 无 ui 集成 即时通信 IM Flutter-无 UI 集成-文档中心-腾讯云
- flutter sdk api 索引 即时通信 IM Flutter-客户端 API-文档中心-腾讯云
- flutter sdk api 文档 Introduction · Flutter · Tencent Cloud Chat
- 发送消息 即时通信 IM Flutter-无 UI 集成-文档中心-腾讯云
- V2TimMessage 消息数据体 V2TimMessage · Flutter · Tencent Cloud Chat
服务端 Rest API
- 生成 UserSig 即时通信 IM 生成 UserSig-服务端 API-文档中心-腾讯云
- REST Api 即时通信 IM REST API 简介-服务端 API-文档中心-腾讯云
- 第三方回调 即时通信 IM 第三方回调简介-服务端 API-文档中心-腾讯云
- 签名 v3 实时音视频 签名方法 v3-服务端 API -文档中心-腾讯云
腾讯后台
- IM 服务入口 登录 - 腾讯云
- sig签名工具 登录 - 腾讯云
- 配置回调 登录 - 腾讯云
其他
- 错误码 即时通信 IM 错误码-文档中心-腾讯云
3. TIM 整体架构
第一部分:APP 端
- TIM SDK 集成、配置、初始、收发消息、文件、图片、语音、各种事件监听、会话管理。。。
- HTTP API 拉取用户签名
第二部分:腾讯服务器
- TIM 即时通讯服务 消息、会话、群、用户、关系、信令
- TPNS 离线推送 当用户离线的时候进行APP推送、设备推送
- 腾讯音视屏通话 仿微信界面视频通话、音频通话、多人会议
- 腾讯 COS 对象存储 图片、音频、文件存储
第三部分:三方服务
- Friebase Auth 认证、FCM 消息推送 android ios
- Agora 声网 视频通话、音频通话、多人会议
第四部分:你自己的服务器
- 用户 tim 签名令牌 客户端 SDK 需要带上令牌才能使用
- 腾讯服务器调用 新用户、用户同步、消息推送、群管理。。。
- 腾讯回调 推送到你服务器用户状态、消息、群。。。
- 三方服务调用 如 friebase fcm 推送消息、声网音视频通话。。。
4. TIM SDK 集成
腾讯提供了两种方式集成到你的项目中,一种含UI,一种不含的方式。
本文将会介绍这两种方式,我们使用的是 不含UI 方式。
TUIK 含 UI 集成
资料 即时通信 IM Flutter-聊天互动(含 UI)-文档中心-腾讯云
下载 demo https://github.com/TencentCloud/chat-demo-flutter

优点
快速集成 IM 聊天业务,常见业务界面都有了 好友、单聊、群聊、联系人。。。
缺点
APP不够个性,设计师不喜欢,产品不喜欢,定制功能还是要重写。
无 UI 集成
资料 即时通信 IM Flutter-无 UI 集成-文档中心-腾讯云
环境要求
| 平台 | 版本 |
|---|---|
| Flutter | 2.2.0 及以上版本。 |
| Android | Android Studio 3.5及以上版本,App 要求 Android 4.1及以上版本设备。 |
| iOS | Xcode 11.0及以上版本,真机调试请确保您的项目已设置有效的开发者签名。 |
支持平台
致力于打造一套支持 Flutter 全平台的即时通信 IM SDK 及 TUIKit,帮助您一套代码,全平台运行。
| 平台 | 支持状态 |
|---|---|
| iOS | 支持 |
| Android | 支持 |
| Web | 支持,4.1.1+2版本起 |
| macOS | 支持,4.1.9版本起 |
| Windows | 支持,4.1.9版本起 |
| 混合开发(将 Flutter SDK 添加至现有原生应用) | 5.0.0版本起支持 |
开始集成
本机环境
flutter --versionFlutter 3.7.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 62bd79521d (10 天前) • 2023-03-30 10:59:36 -0700
Engine • revision ec975089ac
Tools • Dart 2.19.6 • DevTools 2.20.1
flutter 加入依赖
pubspec.yaml
# IMtencent_cloud_chat_sdk: 5.1.5# tencent_im_sdk_plugin:# git:# url: https://github.com/ducafecat/chat-sdk-flutter# path: tencent_im_sdk_plugin
tencent_cloud_chat_sdk 最新的这个包
因为腾讯的 sdk 有一些小问题,猫哥有维护一份放在 github 上。
git clone 的版本是 5.0.5
因为是 github 仓库,请科学方式
android 配置
设置仓库
android/build.gradle
repositories {google()jcenter()mavenCentral()
}
allprojects {repositories {google()jcenter()mavenCentral()}
}
加入 jcenter 是因为有些老的库包版本需要下载,在 mavenCentral 上没有。
所以都要加上。
设置权限
android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
设置混淆规则
android/app/proguard-rules.pro
# 腾讯 im
-keep class com.tencent.imsdk.** { *; }
android/app/build.gradle
buildTypes {release {...// ProGuard规则文件proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
IOS(Win系统不能运行IOS程序,跑Android)
如果包问题,可以尝试重新拉取,进入 ios 目录。
cd iospod install
如果升级本地包,执行 pod update ,会比 pod install 慢。
若 pod 搜索失败,建议尝试更新 pod 的本地 repo 缓存。更新命令如下:
pod setup
pod repo update
rm ~/Library/Caches/CocoaPods/search_index.json
小结
本文比较了两种集成方式,推荐用无UI的SDK集成,这样灵活些。
其实用到的界面也不多,我们常见业务用到会话、聊天、群设置,自己写就行。
5. 创建应用 AppID密钥
第一步:创建应用
登录 - 腾讯云

免费版可以有 100 个用户,足够开发阶段用了~

第二步:appid,密钥

第三步:功能丰富的管理后台

账号管理、群组管理、统计、回调配置、签名工具、离线推送调试。。。
小结
请保存好你的 appid、密钥 不要提交到代码仓,否则别人拿到后会跑你的流量,你可以环境 env 来设置。
创作不易,希望读者三连支持 💖
赠人玫瑰,手有余香 💖
相关文章:
Flutter TIM 项目配置
目录 1. 设计说明 2. 参考资料索引 Flutter SDK 服务端 Rest API 腾讯后台 其他 3. TIM 整体架构 第一部分:APP 端 第二部分:腾讯服务器 第三部分:三方服务 第四部分:你自己的服务器 4. TIM SDK 集成 TUIK 含 UI 集成…...
【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(8)
Hi٩(๑o๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机!带你一周内快速走进嵌入式的大门,let’s go! (8&#x…...
第5天:视图与模板进阶
第5天:视图与模板进阶 目标 掌握视图逻辑和模板渲染,包括不同类型的视图、自定义模板标签和过滤器,以及模板继承和包含的概念。 任务概览 学习函数视图和类视图的使用。编写自定义模板标签和过滤器。理解模板的继承和包含机制。 详细步骤…...
线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))
1通信机制:互斥与同步 线程的互斥通过线程的互斥锁完成; 线程的同步通过无名信号量或者条件变量完成。 2 互斥 2.1 何为互斥? 互斥是在多个线程在访问同一个全局变量的时候,先让这个线程争抢锁的资源,那个线程争抢…...
Android使用data uri启动activity或service
设定AndroidManifest.xml 在AndroidManifest.xml文件中,我们可以设定activity或service的data。 <!-- activity定义方式 --> <activityandroid:name".page.main.MainActivity"><intent-filter><action android:name"an…...
能理解你的意图的自动化采集工具——AI和爬虫相结合
⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…...
基于SpringBoot+大数据城市景观画像可视化设计和实现
💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…...
Oracle表中的数据量达到30万条
当Oracle表中的数据量达到30万条,并且查询性能过慢时,增加索引是一个有效的优化方案。以下是一些建议来增加索引以提高查询性能: 分析查询需求: 首先,需要明确哪些查询是经常执行的,以及这些查询的WHERE子…...
【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
如何定期更新系统以保护网络安全
定期更新系统保护网络安全的方法 定期更新系统是确保网络安全的关键措施之一。以下是一些有效的方法: 及时获取更新信息:用户应通过邮件订阅、官方网站、厂商渠道等途径获取最新的更新通知。此外,互联网上的安全论坛和社区也是获取相关安全资…...
华为数通——OSPF
正掩码:/24 255.255.255.0 反掩码: 255.255.255.255 -255.-255.-255.0 0.0.0.255 例如掩码:255.255.252.0 反掩码:0.0.3.255 在反掩码里面,0 bit 表示精确匹配,1…...
RedHat9 | Web服务配置与管理(Apache)
一、实验环境 1、Apache服务介绍 Apache服务,也称为Apache HTTP Server,是一个功能强大且广泛使用的Web服务器软件。 起源和背景 Apache起源于NCSA httpd服务器,经过多次修改和发展,逐渐成为世界上最流行的Web服务器软件之一。…...
API-事件监听
学习目标: 掌握事件监听 学习内容: 事件监听拓展阅读-事件监听版本 事件监听: 什么是事件? 事件是在编程时系统内发生的动作或者发生的事情。 比如用户在网页上单击一个按钮。什么是事件监听? 就是让程序检测是否有事…...
如何为自己的项目生成changelog
背景 在github上看到人家的更新日志感觉很cool,怎么能给自己项目来一套呢 环境信息 tdstdsdeMacBook-Pro demo-doc % node -v v14.18.1 tdstdsdeMacBook-Pro demo-doc % npm -v 6.14.15硬件信息 型号名称:MacBook Pro版本: 12.6.9芯片&…...
MySQL之表碎片化
文章目录 1. 前言2. InnoDB表碎片3. 清除表碎片3.1 查找碎片化严重的表3.2 清除碎片 4. 小结5. 参考 1. 前言 周一在对线上表进行数据清除时,发现一个问题,我要清除的单表大概有2500w条数据,清除数据大概在1300w条左右,清除之前通…...
碳+绿证如何能源匹配?考虑碳交易和绿证交易制度的电力批发市场能源优化程序代码!
前言 近年来,面对日益受到全社会关注的气候变化问题,国外尤其是欧美等发达国家和地区针对电力行业制定了一系列碳减排组合机制。其中,碳排放权交易(以下简称“碳交易”)和绿色电力证书交易(以下简称“绿证…...
【原创】springboot+mysql海鲜商城设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...
envi5.6+SARscape560安装(CSDN_20240623)
envi和SARscape的版本必须匹配,否则有些功能不能使用。 Envi5.6安装 1. 点击安装程序. 2. 进入安装界面,点击“Next”. 3. 选择“I accept the agreement”,点击“Next”。 4. 选择安装路径,建议直接安装在默认路径下࿰…...
基本循环神经网络(RNN)
RNN背景:RNN与FNN 在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力。 在生物神经网络中,神经元之间的连接关系要复杂的多。前馈神经网络可以看着…...
win32API(CONSOLE 相关接口详解)
前言: Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程式达到开启视窗、描绘图形…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
