项目介绍:OpenIM Flutter Demo
OpenIM Flutter Demo 是一个基于 Flutter 构建的即时通讯应用演示项目,主要支持 Android 和 iOS 平台。该项目通过使用 OpenIM SDK 实现了实时通讯功能,帮助开发者快速了解如何在 Flutter 环境中集成即时通讯服务。
技术栈
- 这是一个
Flutter
项目。 - 应用基于 open-im-sdk-flutter 库构建。
官方演示应用使用
- 用户可以下载体验应用程序的 APK 或 IPA,并在实际设备上操作以体验其功能。安卓版本的二维码可以提供便捷的下载渠道。
开发环境配置
- 开发者需要准备 Android Studio 或 VsCode 进行开发。
- Flutter 的版本需要是 3.22.3。
构建步骤
-
克隆项目代码:
git clone https://github.com/OpenIMSDK/Open-IM-Flutter-Demo.git
-
修改配置文件中的服务器地址: 打开 config.dart 文件,将
_host
常量的值设置为自己搭建的服务器地址。static const _host = "your-server-ip/domain";
-
更新 IM SDK 版本: 在
pubspec.yaml
文件以及相关的模块下,替换为最新的flutter_openim_sdk
版本。 -
拉取依赖并进行编译:
$ flutter pub get $ flutter run # 对于 iOS 平台,请使用实际设备进行操作。
常见问题
-
支持多语言吗?
- 支持,默认跟随系统语言。
-
支持哪些平台?
- 目前仅支持 Android 和 iOS。
-
Android 发布包启动时出现空白屏幕?
- Flutter 的发布包默认是混淆处理的,可以使用以下命令来解决:
flutter build release --no-shrink
- 如未解决,请在
android/app/build.gradle
文件的发布配置内加入以下内容:release { minifyEnabled false useProguard false shrinkResources false }
- Flutter 的发布包默认是混淆处理的,可以使用以下命令来解决:
-
代码混淆问题?
- 在混淆规则中添加以下规则:
-keep class io.openim.**{*;} -keep class open_im_sdk.**{*;} -keep class open_im_sdk_callback.**{*;}
- 在混淆规则中添加以下规则:
-
无论在模拟器上无法安装 Android 安装包?
- 因为删除了一些 CPU 架构支持,如果要在模拟器上运行,需在
android/build.gradle
文件中加入:ndk { abiFilters "armeabi-v7a", "x86" }
- 因为删除了一些 CPU 架构支持,如果要在模拟器上运行,需在
-
iOS 运行/构建错误?
- 请将 CPU 架构设置为 arm64,并按照以下步骤操作:
flutter clean flutter pub get cd ios rm -f Podfile.lock rm -rf Pods pod install
- 在连接实际设备后运行归档。
- 请将 CPU 架构设置为 arm64,并按照以下步骤操作:
-
iOS 最低运行版本是什么?
- iOS 13.0。
-
开发者遇到的设备签名问题?
- 在
Podfile
中添加以下代码:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = "" config.build_settings['CODE_SIGNING_REQUIRED'] = "NO" config.build_settings['CODE_SIGNING_ALLOWED'] = "NO" end end end
- 在
社区及贡献
- 参与 OpenIM 社区,可以加入论坛讨论和贡献代码,定期举办会议并记录讨论结果。
使用者案例
- 在 用户案例研究页面 查阅更多使用者的实际案例。
许可证
OpenIM 采用 Apache 2.0 许可证,详见许可证文件。