Flutter TIM 项目配置

目录

[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 配置)

IOS(Win系统不能运行IOS程序,跑Android)

小结

[5. 创建应用 AppID密钥](#5. 创建应用 AppID密钥)

第一步:创建应用

第二步:appid,密钥

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

小结


**博主wx:**yuanlai45_csdn **博主qq:**2777137742

后期会创建粉丝群,为同学们提供分享交流平台以及提供官方发送的福利奖品~

(目前已经有了各大官方提供的有奖活动哈~)

1. 设计说明

2. 参考资料索引

Flutter SDK

服务端 Rest 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 来设置。

创作不易,希望读者三连支持 💖
赠人玫瑰,手有余香 💖

相关推荐
Kapaseker14 分钟前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
黄林晴17 分钟前
你的 Android App 还没接 AI?Gemini API 接入全攻略
android
恋猫de小郭10 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
冬奇Lab11 小时前
PowerManagerService(上):电源状态与WakeLock管理
android·源码阅读
明君8799715 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter
BoomHe17 小时前
Now in Android 架构模式全面分析
android·android jetpack
四眼肥鱼1 天前
flutter 利用flutter_libserialport 实现SQ800 串口通信
前端·flutter
二流小码农1 天前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
鹏程十八少1 天前
4.Android 30分钟手写一个简单版shadow, 从零理解shadow插件化零反射插件化原理
android·前端·面试
Kapaseker1 天前
一杯美式搞定 Kotlin 空安全
android·kotlin