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.mzph.cn/web/32711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网系统运维——数据库部署

一.MySQL 1.概要 MySQL是一种关联数据库管理系统&#xff0c;关联数据:而不是将所有数据放在一个大仓库内&#xff0c;这样就增加了速度并提高了灵活性库将数据保存在不同的表中。性能高、成本低、可靠性好&#xff0c;已经成为最流行的开源数据库。 二.MySQL安装与配置 1. …

DataStructure.时间和空间复杂度

时间和空间复杂度 【本节目标】1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例3.4.1 示例13.4.2 示例23.4.3 示例33.4.4 示例43.4.5 示例53.4.6 示例63.4.7 示例7 4.空间复杂度4.1 示…

redis-实战篇(8)达人探店

8、达人探店 8.1、达人探店-发布探店笔记 发布探店笔记 探店笔记类似点评网站的评价&#xff0c;往往是图文结合。对应的表有两个&#xff1a; tb_blog&#xff1a;探店笔记表&#xff0c;包含笔记中的标题、文字、图片等 tb_blog_comments&#xff1a;其他用户对探店笔记的…

网格处理库 pmp-library 编译及应用笔记 -- 已全部解决√

多边形网格处理库Polygon Mesh Processing Library&#xff0c;简称pmp-library的 编译及应用笔记 – 已全部解决√ 官网&#xff1a;https://www.pmp-library.org/index.html 代码&#xff1a;https://github.com/pmp-library/pmp-library 平台&#xff1a;Ubuntu1 20.04&…

Bandzip:打破压缩界限,文件管理更高效

名人说&#xff1a;&#xff1a;一点浩然气&#xff0c;千里快哉风。 ——苏轼 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、软件介绍1、Bandzip2、核心特点 二、下载安装1、下载2、安装 三、使用方法 很高兴…

C语言中操作符详解(二)

OK&#xff0c;今天继续为诸君带来有关C语言中操作符的讲解 一 . 位操作符 C语言中的位操作符我相信大家并不陌生&#xff0c;我们在之前就已经接触过了一些 位操作符&#xff08;位操作符的操作数只能是整数&#xff09;&#xff1a; &#xff08;1&#xff09;& &…

Origin较好用的科研绘图软件

推荐自己也在用的科研绘图软件Origin图所示&#xff1a; 图1 图2 图3

WMS项目测试点

这里写目录标题 最后附有图片 仓库系统 仓库 / 库区 仓库 新增仓库 编号 必填校验 字段长度校验 20为字符 数据类型校验 名称 必填校验 字段长度校验 20为字符 数据类型校验 备注 填写备注校验 字符长度限制 不填写备注校验 新增仓库之后是否可以通过查询仓库名称和仓库编号查询…

poi生成的excel,输入数字后变成1.11111111111111E+23

poi版本4.1.2 生成excel后&#xff0c;单元格输入数字&#xff0c;过长的话变成这样 解决&#xff1a;生成的时候设置单元格格式为文本格式 import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream; imp…

数据结构与算法笔记:基础篇 - 初始动态规划:如何巧妙解决“双十一”购物时的凑单问题?

概述 淘宝的 “双十一” 购物节有各种促销活动&#xff0c;比如 “满 200 元减 50元”。假设你女朋友购物车中有 n 个&#xff08;n > 100&#xff09;想买的商品&#xff0c;它希望从里面选几个&#xff0c;在凑够满减条件的前提下&#xff0c;让选出来的商品价格总和最长…

学习笔记——路由网络基础——路由转发

六、路由转发 1、最长匹配原则 最长匹配原则 是支持IP路由的设备默认的路由查找方式(事实上几乎所有支持IP路由的设备都是这种查找方式)。当路由器收到一个IP数据包时&#xff0c;会将数据包的目的IP地址与自己本地路由表中的表项进行逐位(Bit-By-Bit)的逐位查找&#xff0c;…

一元线性回归模型 多元线性回归模型回归模型评估

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

Vue41 ref属性

ref属性 ref是Vue提供的获取组件的属性 <template><div><h1 v-text"msg" ref"title"></h1><button ref"btn" click"showDOM">点我输出上方的DOM元素</button><MySchool ref"sch"…

若依微服务项目09 - swagger如何不显示某个模块的接口文档

在若依微服务项目中&#xff0c;如果不想暴露某个模块的swagger的接口文档&#xff0c;需要怎么做&#xff1f; 本文以ruoyi-gen模块进行举例说明。 默认情况下&#xff0c;可以看到这里包含了ruoyi-gen模块&#xff0c;我们要做的是&#xff0c;要将ruoyi-gen进行隐藏。 最终的…

计算机网络 静态路由及动态路由RIP

一、理论知识 1.静态路由 静态路由是由网络管理员手动配置在路由器上的固定路由路径。其优点是简单和对网络拓扑变化不敏感&#xff0c;缺点是维护复杂、易出错&#xff0c;且无法自动适应网络变化。 2.动态路由协议RIP RIP是一种基于距离向量的动态路由协议。它使用跳数作…

springboot+vue+mysql+mybatis 二手交易平台

springbootvuemysqlmybatis 二手交易平台 相关技术 javaspringbootmybatismysqlvueelementui

vscode用vue框架2,续写登陆页面逻辑,以及首页框架的搭建

目录 前言&#xff1a; 一、实现登录页信息验证逻辑 1.实现登录数据双向绑定 2.验证用户输入数据是否和默认数据相同 补充知识1&#xff1a; 知识点补充2&#xff1a; 二、首页和登录页之间的逻辑(1) 1. 修改路由&#xff0c;使得程序被访问先访问首页 知识点补充3&am…

【STM32】STM32通过I2C实现温湿度采集与显示

目录 一、I2C总线通信协议 1.I2C通信特征 2.I2C总线协议 3.软件I2C和硬件I2C 二、stm32通过I2C实现温湿度&#xff08;AHT20&#xff09;采集 1.stm32cube配置 RCC配置&#xff1a; SYS配置&#xff1a; I2C1配置&#xff1a; USART1配置&#xff1a; GPIO配置&#…

二叉树经典OJ练习

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 二叉树经典OJ练习 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 前置说…

八、(正点原子)Linux内核定时器实验

定时器是我们最常用到的功能&#xff0c;一般用来完成定时功能&#xff0c;本章我们就来学习一下 Linux 内核提供的定时器 API 函数&#xff0c;通过这些定时器 API 函数我们可以完成很多要求定时的应用。 Linux内核也提供了短延时函数&#xff0c;比如微秒、纳秒、毫秒延时函数…