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 来设置。

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

相关推荐
Geeker553 小时前
如何从iPhone恢复错误删除的照片
android·数据库·macos·ios·pdf·手机·iphone
我又来搬代码了4 小时前
【Android】【Compose】Compose里面的Row和Column的简单使用
android
分享者花花5 小时前
如何从华为恢复永久删除的视频?
android·华为·智能手机·word·手机·cocoa·iphone
茶卡盐佑星_5 小时前
VUE的基础指令介绍
前端·vue.js·flutter
张风捷特烈6 小时前
FlutterUnit & TolyUI | 布局游乐场
android·flutter
程序猿的玻璃心15 小时前
【Android源码】AOSP下载
android
sky_brian16 小时前
android studio 添加aar包
android·ide·android studio
薛文旺18 小时前
Android焦点窗口设定
android
三花AI18 小时前
DigiRL:让 AI 自己学会控制手机
android·人工智能·苹果
长亭外的少年19 小时前
深入解析三大跨平台开发框架:Flutter、React Native 和 uniapp
flutter·react native·uni-app