Commit 8d06fd18 by tanghuan

调整腾讯云IM SDK的初始化时机,以符合应用商店上架时的安全隐私检测。

1 parent 9215abd9
...@@ -4,7 +4,6 @@ import 'dart:io'; ...@@ -4,7 +4,6 @@ import 'dart:io';
import 'package:appframe/config/constant.dart'; import 'package:appframe/config/constant.dart';
import 'package:appframe/config/env_config.dart'; import 'package:appframe/config/env_config.dart';
import 'package:appframe/config/locator.dart'; import 'package:appframe/config/locator.dart';
import 'package:appframe/services/im_service.dart';
import 'package:appframe/ui/widgets/ios_edge_swipe_detector.dart'; import 'package:appframe/ui/widgets/ios_edge_swipe_detector.dart';
import 'package:archive/archive.dart'; import 'package:archive/archive.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -18,7 +17,6 @@ void main() async { ...@@ -18,7 +17,6 @@ void main() async {
await setupLocator(); await setupLocator();
await _initH5Version(); await _initH5Version();
await _initImSdk();
await _initIOSGesture(); await _initIOSGesture();
runApp(const App()); runApp(const App());
...@@ -58,12 +56,6 @@ Future<void> _initH5Version() async { ...@@ -58,12 +56,6 @@ Future<void> _initH5Version() async {
} }
} }
Future<void> _initImSdk() async {
if (Constant.needIM) {
await getIt.get<ImService>().initSdk();
}
}
Future<void> _initIOSGesture() async { Future<void> _initIOSGesture() async {
if (Platform.isIOS) { if (Platform.isIOS) {
// ios边缘滑动检测 // ios边缘滑动检测
......
...@@ -187,11 +187,19 @@ class ImService { ...@@ -187,11 +187,19 @@ class ImService {
V2TimAdvancedMsgListener get msgListener => _msgListener; V2TimAdvancedMsgListener get msgListener => _msgListener;
/// // 添加初始化状态标记
bool _isInitialized = false;
bool get isInitialized => _isInitialized;
/// 初始化 IM SDK /// 初始化 IM SDK
///
Future<bool> initSdk() async { Future<bool> initSdk() async {
// 初始化SDK // 防止重复初始化
if (_isInitialized) {
debugPrint("IM SDK 已经初始化,跳过");
return true;
}
var initSDKRes = await TencentImSDKPlugin.v2TIMManager.initSDK( var initSDKRes = await TencentImSDKPlugin.v2TIMManager.initSDK(
sdkAppID: Constant.imSdkAppId, sdkAppID: Constant.imSdkAppId,
loglevel: LogLevelEnum.V2TIM_LOG_ALL, loglevel: LogLevelEnum.V2TIM_LOG_ALL,
...@@ -199,6 +207,7 @@ class ImService { ...@@ -199,6 +207,7 @@ class ImService {
); );
if (initSDKRes.code == 0) { if (initSDKRes.code == 0) {
_isInitialized = true; // 标记已初始化
debugPrint("IM SDK 初始化成功-------- ${initSDKRes.data}"); debugPrint("IM SDK 初始化成功-------- ${initSDKRes.data}");
return true; return true;
} else { } else {
...@@ -225,6 +234,9 @@ class ImService { ...@@ -225,6 +234,9 @@ class ImService {
/// 登录 IM /// 登录 IM
/// ///
Future<bool> login(String userID) async { Future<bool> login(String userID) async {
// 登录前先初始化SDK
await initSdk();
// 登录前先判断登录状态 // 登录前先判断登录状态
var loginStatus = await TencentImSDKPlugin.v2TIMManager.getLoginStatus(); var loginStatus = await TencentImSDKPlugin.v2TIMManager.getLoginStatus();
if (loginStatus.code == 0) { if (loginStatus.code == 0) {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!