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这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程式达到开启视窗、描绘图形…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...