From 107325f6d1faee82b89fac10795f9b70d0e1997d Mon Sep 17 00:00:00 2001 From: KIMI Date: Sat, 15 Aug 2026 16:07:03 +0800 Subject: [PATCH] =?UTF-8?q?mobile=20v1.0.4=EF=BC=9A=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=AD=A5=E9=AA=A4=E6=89=93=E7=82=B9=EF=BC=8C=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E5=8C=BA=E5=88=86=E5=8D=A1=E5=9C=A8=20?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E7=9B=AE=E5=BD=95/=E5=BB=BA=E7=9B=AE?= =?UTF-8?q?=E5=BD=95/SDK=E5=86=85=E6=A0=B8=EF=BC=9B=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E8=B6=85=E6=97=B6=E6=94=BE=E5=AE=BD=E5=88=B0=2030s?= =?UTF-8?q?=EF=BC=88B-58=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile/lib/screens/login_screen.dart | 5 +++-- mobile/lib/services/im_service.dart | 7 +++++++ mobile/pubspec.yaml | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/mobile/lib/screens/login_screen.dart b/mobile/lib/screens/login_screen.dart index 519d659..50687c2 100644 --- a/mobile/lib/screens/login_screen.dart +++ b/mobile/lib/screens/login_screen.dart @@ -80,9 +80,9 @@ class _LoginScreenState extends State { password: password, platformID: IMService.instance.platformID, ); - // 2. 初始化消息组件(分两步超时,方便定位卡在哪一步) + // 2. 初始化消息组件(分两步超时,方便定位卡在哪一步;老手机首次建库可能偏慢,放宽到 30 秒) await IMService.instance.init().timeout( - const Duration(seconds: 15), + const Duration(seconds: 30), onTimeout: () => throw AuthException('消息组件初始化超时'), ); // 3. 登录 OpenIM SDK @@ -117,6 +117,7 @@ class _LoginScreenState extends State { } final sdkErr = IMService.instance.lastConnectError; if (sdkErr != null && sdkErr.isNotEmpty) parts.add('消息组件报告:$sdkErr'); + parts.add('初始化进行到哪一步:${IMService.instance.lastInitStep}'); if (mounted) setState(() => _error = parts.join('\n')); // SDK 日志可能较大,异步读完后再补一行提示用户拍照 try { diff --git a/mobile/lib/services/im_service.dart b/mobile/lib/services/im_service.dart index b307f67..9f03e8f 100644 --- a/mobile/lib/services/im_service.dart +++ b/mobile/lib/services/im_service.dart @@ -130,11 +130,17 @@ class IMService extends ChangeNotifier { }); } + /// 初始化进行到哪一步(超时时展示,区分卡在获取目录还是 SDK 内核) + String lastInitStep = '还没开始'; + Future _doInit() async { + lastInitStep = '① 获取存储目录'; final dir = await getApplicationDocumentsDirectory(); final dataDir = '${dir.path}/openim'; _dataDir = dataDir; + lastInitStep = '② 创建数据目录'; await Directory(dataDir).create(recursive: true); + lastInitStep = '③ 启动消息组件内核'; final ok = await OpenIM.iMManager.initSDK( platformID: platformID, apiAddr: apiAddr, @@ -162,6 +168,7 @@ class IMService extends ChangeNotifier { onUserTokenInvalid: _forceLogout, ), ); + lastInitStep = '④ 内核已返回(结果:$ok)'; sdkReady = ok == true; _setBusinessListeners(); notifyListeners(); diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index ab0b053..d92f459 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -1,7 +1,7 @@ name: changlian description: 畅联 —— 公司内部通讯 App(手机端) publish_to: "none" -version: 1.0.3+4 +version: 1.0.4+5 environment: sdk: ">=3.6.0 <4.0.0"