你是否想过从头开发一款类似 QQ、微信的聊天应用?又或者,想要在你开发的应用中加入聊天功能,方便用户交流,增强用户粘性?那么,这篇文章就是为你准备的。在这篇文章中,我将介绍如何基于 Flutter 快速实现一款聊天应用。
应用简介
这个基于 Flutter 开发的应用还在持续完善中,现已经支持如下功能:
登录、登出
发起单聊
发起群聊
支持文字消息、语音消息、图片消息
支持展示未读消息数
支持展示会话成员
支持修改会话名称
支持离线消息推送
投诉举报不良信息
把某用户加入黑名单
页面截图
开发环境搭建
第一步:Flutter 安装和环境搭建直接查看:Flutter 文档 [1]。
第二步:登录 LeanCloud 控制台 [2],创建 LeanCloud 应用。
在控制台 > 应用 > 设置 >域名绑定页面绑定 API 访问域名。暂时没有域名可以略过这一步,LeanCloud 也提供了短期有效的免费体验域名;或者注册 LeanCloud 国际版 [3],国际版不要求绑定域名。
在控制台 > 应用 > 设置 > 应用 Keys 页面记录 AppID、AppKey 与服务器地址备用,这里的服务器地址就是 REST API 服务器地址。如果未绑定域名,控制台相同的位置可以获取到免费的共享域名。
APP 初始化设置
在 pubspec.yaml 中,将 LeanCloud Flutter SDK 添加到依赖项列表:
dependencies:
leancloud_official_plugin: ^1.0.0-beta.8 //即时通信插件
leancloud_storage: ^0.2.9 //数据存储 SDK
然后运行 flutter pub get 安装 SDK。
因为 leancloud_official_plugin 是基于 Swift SDK [4] 以及 Java Unified SDK [5] 开发,所以还要安装后面两个 SDK,这样应用才能分别在 iOS 和 Android 设备运行。
需要通过 CocoaPods 安装 Swift SDK,这一步和安装 iOS 其他第三方库是一样的,在应用的 ios 目录下执行 pod update 即可。
$ cd ios/
$ pod update # 或者 $ pod install --repo-update
同样的,需要配置 Gradle 来安装 Java Unified SDK,打开工程目录 android/app/build.gradle,添加如下依赖,用 Android Studio 打开工程下的 android 目录,同步更新 Gradle 即可。
dependencies {
implementation 'cn.leancloud:storage-android:6.5.11'
implementation 'cn.leancloud:realtime-android:6.5.11'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
}
小 tips: 安装 SDK 期间遇到任何困难都可在 LeanCloud 社区 [6] 发帖求助。
SDK 安装成功以后,需要分别 初始化 iOS 和 Android 平台 [7]。
用户系统
Demo 里面并没有内置用户系统,可以选择联系人列表中的用户名来登录聊天系统。LeanCloud 即时通信服务端中只需要传入一个唯一标识字符串既可以表示一个「用户」,对应唯一的 Client&