当前位置: 首页 > news >正文

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 集成-文档中心-腾讯云

环境要求

平台版本
Flutter2.2.0 及以上版本。
AndroidAndroid Studio 3.5及以上版本,App 要求 Android 4.1及以上版本设备。
iOSXcode 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 来设置。

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

http://www.lryc.cn/news/380389.html

相关文章:

  • 【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(8)
  • 第5天:视图与模板进阶
  • 线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))
  • Android使用data uri启动activity或service
  • 能理解你的意图的自动化采集工具——AI和爬虫相结合
  • 基于SpringBoot+大数据城市景观画像可视化设计和实现
  • Oracle表中的数据量达到30万条
  • 【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】
  • 如何定期更新系统以保护网络安全
  • 华为数通——OSPF
  • RedHat9 | Web服务配置与管理(Apache)
  • API-事件监听
  • 如何为自己的项目生成changelog
  • MySQL之表碎片化
  • 碳+绿证如何能源匹配?考虑碳交易和绿证交易制度的电力批发市场能源优化程序代码!
  • 【原创】springboot+mysql海鲜商城设计与实现
  • envi5.6+SARscape560安装(CSDN_20240623)
  • 基本循环神经网络(RNN)
  • win32API(CONSOLE 相关接口详解)
  • python爬虫学习笔记一(基本概念urllib基础)
  • MyBatis映射器:一对多关联查询
  • 100多个ChatGPT指令提示词分享
  • vue2和vue3数据代理的区别
  • 已解决ApplicationException异常的正确解决方法,亲测有效!!!
  • 「前端+鸿蒙」鸿蒙应用开发-常用UI组件-图片-参数
  • Tobii Pro Lab 1.232是全球领先的眼动追踪研究实验软件
  • 【flink实战】flink-connector-mysql-cdc导致mysql连接器报类型转换错误
  • 【Linux】系统文件IO·文件描述符fd
  • 【计算机网络篇】数据链路层(6)共享式以太网_网络适配器_MAC地址
  • 导入别人的net文件报红问题sdk