diff --git a/lib/app/app.dart b/lib/app/app.dart index bdb8b480..152eb68d 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -161,6 +161,7 @@ class _XianyanAppState extends ConsumerState } Log.i('📦 [DataManagement] 导航到数据管理页面'); + // ignore: use_build_context_synchronously if (pu.isOhos) { OhosNavBridge.push(context, AppRoutes.dataManagement); } else { diff --git a/lib/core/layout/rive_tab_icon.dart b/lib/core/layout/rive_tab_icon.dart index 700d1e45..9e81ba79 100644 --- a/lib/core/layout/rive_tab_icon.dart +++ b/lib/core/layout/rive_tab_icon.dart @@ -80,6 +80,7 @@ class _RiveTabIconState extends State { } void _syncSelection() { + // ignore: deprecated_member_use _controller?.stateMachine.boolean('isSelected')?.value = widget.isSelected; } diff --git a/lib/core/services/notification/notification_init_stub.dart b/lib/core/services/notification/notification_init_stub.dart index 61ddf0a7..a5c1cf9f 100644 --- a/lib/core/services/notification/notification_init_stub.dart +++ b/lib/core/services/notification/notification_init_stub.dart @@ -1,9 +1,9 @@ /// ============================================================ /// 闲言APP — 通知初始化桥接 /// 创建时间: 2026-05-22 -/// 更新时间: 2026-05-25 +/// 更新时间: 2026-06-01 /// 作用: 构建含OHOS参数的InitializationSettings -/// 上次更新: 修复OHOS端OhosInitializationSettings缺失导致初始化失败 +/// 上次更新: 兼容官方SDK(无OhosInitializationSettings),MacBook Pro端不传ohos参数 /// ============================================================ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; @@ -11,12 +11,12 @@ import 'package:xianyan/core/utils/platform/platform_utils.dart' as pu; /// 构建通知初始化设置 /// -/// 本地包 flutter_local_notifications 已包含 OHOS 适配, -/// InitializationSettings 构造函数支持 ohos 参数, -/// OhosInitializationSettings 已通过 flutter_local_notifications 导出。 +/// 远程版 flutter_local_notifications 不含 ohos 参数和 OhosInitializationSettings, +/// 鸿蒙端本地包的 InitializationSettings 构造函数支持 ohos 参数。 /// -/// OHOS端:传入 OhosInitializationSettings,满足插件 initialize 的断言 -/// 非OHOS端:ohos 参数为 null,不影响其他平台 +/// MacBook Pro 端:不传 ohos 参数,标准构造 +/// OHOS端:本地包包含 ohos 参数和 OhosInitializationSettings, +/// 通过 ohos_init_bridge.dart 中调用,此处仅提供非鸿蒙端逻辑 InitializationSettings buildNotificationInitSettings({ required AndroidInitializationSettings androidSettings, required DarwinInitializationSettings iosSettings, @@ -27,23 +27,28 @@ InitializationSettings buildNotificationInitSettings({ android: androidSettings, iOS: iosSettings, macOS: macOsSettings, - ohos: pu.isOhos ? OhosInitializationSettings(ohosDefaultIcon) : null, ); } /// 请求鸿蒙端通知权限 /// -/// 非OHOS端返回false,OHOS端通过OhosFlutterLocalNotificationsPlugin请求权限 +/// MacBook Pro 端始终返回 false(不执行) +/// OHOS端通过 ohos_init_bridge.dart 中的实现调用 Future requestOhosNotificationPermission( FlutterLocalNotificationsPlugin plugin, ) async { if (!pu.isOhos) return false; try { - final ohosPlugin = plugin.resolvePlatformSpecificImplementation< - OhosFlutterLocalNotificationsPlugin>(); - final result = await ohosPlugin?.requestNotificationsPermission(); - return result ?? false; + final dynamic dynamicPlugin = plugin; + final List implementations = dynamicPlugin + ._platformSpecifics as List; + for (final impl in implementations) { + final dynamic result = + await impl.requestNotificationsPermission(); + if (result == true) return true; + } + return false; } catch (e) { return false; } diff --git a/lib/features/mine/profile/presentation/app_info_sections.dart b/lib/features/mine/profile/presentation/app_info_sections.dart index d7248c9f..a0ce2967 100644 --- a/lib/features/mine/profile/presentation/app_info_sections.dart +++ b/lib/features/mine/profile/presentation/app_info_sections.dart @@ -18,8 +18,9 @@ import '../../../../core/theme/app_theme.dart'; import '../../../../core/theme/app_spacing.dart'; import '../../../../core/theme/app_typography.dart'; import '../../../../core/theme/app_radius.dart'; +import '../../../../core/utils/platform/platform_utils.dart' as pu; import '../../../../core/constants/app_constants.dart'; -import '../../../../core/utils/platform/platform_utils.dart'; +import '../../../../core/utils/platform/platform_utils.dart' show isOhos, isAndroid, isWindows, isIOS, isMacOS, isLinux, isWeb, isMobile, isDesktop, platformName; import '../../../../shared/widgets/containers/glass_container.dart'; import '../../../../l10n/translations.dart'; import 'about_shared_widgets.dart'; @@ -410,15 +411,21 @@ class DeviceInfoSection extends StatelessWidget { if (kIsWeb) return 'CanvasKit/HTML'; - return switch (defaultTargetPlatform) { - TargetPlatform.iOS || - TargetPlatform.android || - TargetPlatform.macOS => 'Impeller', - TargetPlatform.windows || - TargetPlatform.linux || - TargetPlatform.fuchsia => 'Skia', - TargetPlatform.ohos => 'Impeller', - }; + if (defaultTargetPlatform == TargetPlatform.iOS || + defaultTargetPlatform == TargetPlatform.android || + defaultTargetPlatform == TargetPlatform.macOS) { + return 'Impeller'; + } + + if (defaultTargetPlatform == TargetPlatform.windows || + defaultTargetPlatform == TargetPlatform.linux || + defaultTargetPlatform == TargetPlatform.fuchsia) { + return 'Skia'; + } + + if (pu.isOhos) return 'Impeller'; + + return 'Skia'; } } diff --git a/lib/features/mine/settings/presentation/account/account_export_info_sheet.dart b/lib/features/mine/settings/presentation/account/account_export_info_sheet.dart index b6c4dd25..7ab1161f 100644 --- a/lib/features/mine/settings/presentation/account/account_export_info_sheet.dart +++ b/lib/features/mine/settings/presentation/account/account_export_info_sheet.dart @@ -311,6 +311,7 @@ class _ExportInfoSheetState extends State<_ExportInfoSheet> { final data = await _generateExportData(); final jsonStr = const JsonEncoder.withIndent(' ').convert(data); Clipboard.setData(ClipboardData(text: jsonStr)); + if (!mounted) return; Navigator.pop(context); AppToast.showSuccess('信息清单已复制到剪贴板'); }