fix: 删除macos平台的依赖,桌面平台一律跳转到网页
This commit is contained in:
@@ -8,12 +8,9 @@ import 'package:kaer_with_panels/app/localization/app_translations.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
|
||||
import '../../../widgets/kr_simple_loading.dart';
|
||||
|
||||
// 桌面平台使用 WebView SDK
|
||||
import 'package:crisp_sdk/crisp_sdk.dart' as webview_crisp;
|
||||
|
||||
/// 🔧 P15 重构: Crisp 客服聊天视图
|
||||
/// - 移动平台 (Android/iOS): 打开原生聊天界面后自动返回
|
||||
/// - 桌面平台 (macOS/Windows): 在页面内嵌入 WebView
|
||||
/// - 桌面平台 (macOS/Windows/Linux): 直接跳转外部浏览器,不进入此页面
|
||||
class KRCrispView extends GetView<KRCrispController> {
|
||||
const KRCrispView({Key? key}) : super(key: key);
|
||||
|
||||
@@ -58,30 +55,11 @@ class KRCrispView extends GetView<KRCrispController> {
|
||||
return Container(
|
||||
color: Theme.of(context).scaffoldBackgroundColor,
|
||||
child: Obx(() {
|
||||
// ========== 移动平台 ==========
|
||||
if (_isMobilePlatform) {
|
||||
if (!controller.kr_isInitialized.value) {
|
||||
return _kr_buildErrorView(context);
|
||||
}
|
||||
// 显示加载中界面,同时原生聊天界面在后台启动
|
||||
return _kr_buildLoadingView(context, '正在加载客服');
|
||||
if (!controller.kr_isInitialized.value) {
|
||||
return _kr_buildErrorView(context);
|
||||
}
|
||||
|
||||
// ========== 桌面平台 ==========
|
||||
if (controller.kr_isLoading.value) {
|
||||
return _kr_buildLoadingView(context, '正在初始化客服系统');
|
||||
}
|
||||
|
||||
if (controller.kr_isInitialized.value && controller.crispController != null) {
|
||||
// 桌面平台:嵌入 WebView
|
||||
return webview_crisp.CrispView(
|
||||
crispController: controller.crispController!,
|
||||
clearCache: true,
|
||||
onSessionIdReceived: _kr_onSessionIdReceived,
|
||||
);
|
||||
}
|
||||
|
||||
return _kr_buildErrorView(context);
|
||||
// 显示加载中界面,同时原生聊天界面在后台启动
|
||||
return _kr_buildLoadingView(context, '正在加载客服');
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -158,7 +136,7 @@ class KRCrispView extends GetView<KRCrispController> {
|
||||
if (_isMobilePlatform) {
|
||||
_kr_openNativeCrispChat(context);
|
||||
} else {
|
||||
controller.kr_initializeDesktopCrisp();
|
||||
Get.back(); // 桌面端不应进入此页面,直接返回
|
||||
}
|
||||
},
|
||||
child: Text('common.retry'.tr),
|
||||
@@ -168,8 +146,4 @@ class KRCrispView extends GetView<KRCrispController> {
|
||||
);
|
||||
}
|
||||
|
||||
/// 处理会话 ID 接收事件 (桌面平台)
|
||||
void _kr_onSessionIdReceived(String sessionId) {
|
||||
debugPrint('[P15-Desktop] Crisp 会话 ID: $sessionId');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user