Skip to content

About

Open IM 移动客户端(Flutter,Android / iOS)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

55 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

open_chat_app

中文 | English

Open IM Flutter 客户端,与 Open IM 服务端配套。

消息通知(极光 JPush + Google FCM)

本项目已移除 Firebase Cloud Messaging。移动端策略为:

  • Android(当前默认):使用极光 JPush,并在支持 Google Play 服务的设备上启用 FCM 厂商通道;向服务端上报极光 Registration ID。
  • Android(本地调试回退):显式传入 --dart-define=OPEN_ANDROID_JPUSH_ENABLED=false 时,使用前台服务保活现有 WebSocket,不初始化或注册极光。
  • iOS:极光 JPush + APNs Token Authentication,向服务端上报 pushProvider: "jpush" 与极光 Registration ID。

Android 本地调试回退依赖应用进程和 WebSocket 仍然存活,用户强制停止应用或系统彻底杀死进程后无法继续收消息;正式离线通知使用配置好 FCM 厂商通道的极光。

Android 后台收到语音或视频来电时会使用全屏来电通知:系统授权后可点亮锁屏并直接进入接听页;未授权或系统不允许全屏展示时自动降级为普通高优先级来电通知。Android 14 及以上首次使用可能打开“全屏通知”系统授权页。

iOS 已接入 CallKit:App 仍能通过 WebSocket 收到来电时会显示系统来电界面。若要在 App 被系统挂起或杀死后仍可靠唤醒,需要另外配置 PushKit VoIP token,并由服务端通过 APNs 发送 VoIP Push。

极光 AppKey 配置

  1. 在 android/local.properties(请勿把真实密钥提交到 Git)末尾增加 Android 极光应用 AppKey(须与控制台里该包名 io.openware.openchat 一致):
jpush.appKey=你的极光AppKey
  1. Android 会从 Manifest 的 JPUSH_APPKEY 初始化极光;OPEN_JPUSH_APPKEY 可选。iOS 仍需传入极光控制台里 Bundle ID io.openware.openchat 对应的 iOS 应用 AppKey。显式指定 Android AppKey 的运行示例:
flutter run --dart-define=OPEN_JPUSH_APPKEY=你的极光AppKey --dart-define=OPEN_ANDROID_JPUSH_ENABLED=true --dart-define=OPEN_JPUSH_PRODUCTION=false

Google FCM 配置文件位于 android/app/google-services.json,包名必须为 io.openware.openchat。项目通过 Google Services Gradle 插件和极光 FCM 插件生成并注册 FCM 客户端配置。

本地调试签名与包名

  • Android applicationId 为 io.openware.openchat,与旧的 com.csmimtbshop.com 完全独立,可同时安装。
  • Debug 构建固定使用仓库内 android/openchat-debug.jks(alias openchat-debug),不读取旧 WV 的 release keystore,也不依赖本机全局 debug.keystore。
  • release 仍只在 android/key.properties 存在时使用其中的签名;本地调试不需要配置 release 签名。
  • 更换包名后,极光/Firebase 控制台需要为 io.openware.openchat 新建应用并更新对应配置。

生产环境请将 OPEN_JPUSH_PRODUCTION=true(与极光控制台、「正式 / 开发」推送环境一致)。

iOS

在 Xcode 中启用 Signing & Capabilities → Push Notifications;若需静默刷新可保留 Background Modes → Remote notifications。极光后台 iOS 证书建议使用 Token Authentication (.p8),并确认 Key ID、Team ID、Bundle ID 与当前应用一致。

离线通知点击跳聊天室依赖服务端在极光通知 extras 中下发会话定位字段,推荐格式:

{
  "chatType": "private",
  "peerId": "123",
  "msgId": "server-message-id"
}

群聊使用:

{
  "chatType": "group",
  "peerId": "456",
  "msgId": "server-message-id"
}

服务端推送渠道与密钥说明见同工作区 open-chat_server/push-channels-integration.md(若仓库分列,请指向对应路径)。

VS Code 的 Gradle 导入提示

Android 工程固定使用 Gradle 8.14 以匹配 AGP 8.11.1。Java 25 + Gradle 8.14 会让 VS Code Java 扩展提示“Can't use Java 25 and Gradle 8.14”,这是 IDE 的 Gradle 项目导入告警,不影响 Flutter/Android 构建。

  • 不要把 Gradle 直接升到 9.7.1;AGP/Flutter 兼容性需要单独验证。
  • 本仓库的 .vscode/settings.json 已关闭 Java 扩展的 Gradle 导入;Flutter/Dart 不受影响。
  • 如果确实需要 Android Java 代码补全,安装 JDK 21,并将 java.import.gradle.java.home 指向该 JDK 后再启用导入。

Flutter 入门

About

Open IM 移动客户端(Flutter,Android / iOS)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages