目录
[1. 设计说明](#1. 设计说明)
[2. 参考资料索引](#2. 参考资料索引)
[Flutter SDK](#Flutter SDK)
[服务端 Rest API](#服务端 Rest API)
[3. TIM 整体架构](#3. TIM 整体架构)
[第一部分:APP 端](#第一部分:APP 端)
[4. TIM SDK 集成](#4. TIM SDK 集成)
[TUIK 含 UI 集成](#TUIK 含 UI 集成)
[无 UI 集成](#无 UI 集成)
[flutter 加入依赖](#flutter 加入依赖)
[android 配置](#android 配置)
[5. 创建应用 AppID密钥](#5. 创建应用 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 -文档中心-腾讯云
腾讯后台
其他
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 --version
Flutter 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
# IM
tencent_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 目录。
Dart
cd ios
pod install
如果升级本地包,执行 pod update ,会比 pod install 慢。
若 pod 搜索失败,建议尝试更新 pod 的本地 repo 缓存。更新命令如下:
Dart
pod setup
pod repo update
rm ~/Library/Caches/CocoaPods/search_index.json
小结
本文比较了两种集成方式,推荐用无UI的SDK集成,这样灵活些。
其实用到的界面也不多,我们常见业务用到会话、聊天、群设置,自己写就行。
5. 创建应用 AppID密钥
第一步:创建应用
免费版可以有 100 个用户,足够开发阶段用了~
第二步:appid,密钥
第三步:功能丰富的管理后台
账号管理、群组管理、统计、回调配置、签名工具、离线推送调试。。。
小结
请保存好你的 appid、密钥 不要提交到代码仓,否则别人拿到后会跑你的流量,你可以环境 env 来设置。
创作不易,希望读者三连支持 💖
赠人玫瑰,手有余香 💖