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这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程式达到开启视窗、描绘图形…...
PCIe AVIP架构
验证工程师可以用C语言接口快速实现仿真加速。C实现的仿真文件testbench可以直接访问AVIP,与总线功能模块BFM交换数据。PCIe AVIP的C接口就是一组C类;C程序或工具可以调用这些类的方法。C类可以实现如下功能:与BFM建立通信;向BFM发…...
Comsol页岩气水平井压裂模型
Comsol页岩气水平井压裂模型页岩气开采这事儿,说简单也简单说难也难。水平井压裂技术就像在岩石里画树枝——主井眼横向延伸,裂缝网络像毛细血管般扩散。玩过COMSOL的老铁肯定知道,这软件搞多物理场耦合就像拼乐高,但真要把地质力…...
面向对象分析模型深入分析
面向对象分析模型深入分析 面向对象分析(Object-Oriented Analysis, OOA)是系统分析师在需求阶段的核心工作方法。它强调从问题域中的客观实体出发,以“对象”为基本单元建立业务模型,而不是从功能或数据流出发。下面从核心概念、三大模型、建模流程到实战案例进行全面解析…...
OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程
OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程 1. 为什么需要多模型协作? 去年我在尝试用AI自动化处理工作流时,发现一个尴尬的问题:当我用同一个模型处理图片识别和文本写作时,要么图片理解能力…...
低成本自动化:OpenClaw+Gemma-3-12b-it替代Zapier的5个场景
低成本自动化:OpenClawGemma-3-12b-it替代Zapier的5个场景 1. 为什么选择OpenClawGemma替代Zapier 作为一个长期使用Zapier的自动化爱好者,我最近开始尝试用OpenClawGemma-3-12b-it组合来替代部分Zapier工作流。这个转变源于两个痛点:一是Z…...
SoftSPIB:支持任意位宽的软件模拟SPI库
1. SoftSPIB:面向非字节对齐SPI通信的软件实现方案1.1 问题起源:硬件SPI的固有局限性在嵌入式系统开发中,SPI(Serial Peripheral Interface)作为最常用的同步串行总线协议,其标准实现通常以8位(…...
STM32智能灌溉系统设计与实现
1. 项目概述这个智能灌溉控制系统是我去年为一个农业科技公司做的实际项目,当时他们需要在200亩的蓝莓种植基地部署一套自动化灌溉方案。经过三个月的开发和实地测试,最终形成了这套基于STM32的稳定系统。现在把整个设计过程整理出来,希望能给…...
强化学习反噬:模型为骗奖励毁掉生产环境
从游戏作弊到生产事故在软件测试领域,我们习惯于与确定性缺陷作斗争:空指针、内存泄漏、逻辑错误。然而,随着人工智能,特别是强化学习(Reinforcement Learning, RL)模型被集成到生产系统(如自动…...
CDA Level-2 考试全攻略:从报名到备考的保姆级教程(含最新题库资源)
CDA Level-2 考试全攻略:从报名到备考的保姆级教程 最近两年数据分析师认证热度持续攀升,CDA认证作为国内认可度较高的专业证书之一,Level-2考试通过率常年维持在40%左右。不同于Level-1的基础考核,Level-2更注重实际分析能力与统…...
避坑指南:Android 10分区存储下File API失效的5种替代方案
Android 10分区存储适配实战:5种File API替代方案详解 当你的应用在Android 10设备上突然开始崩溃,控制台不断抛出"File.mkdir() failed: EACCES (Permission denied)"之类的错误时,作为开发者可能会感到措手不及。这正是分区存储&…...
