From f46f53962f38b58a45ee76c396c02af81d3e5acd Mon Sep 17 00:00:00 2001 From: "DESKTOP-I3JPKHK\\wy" <1111> Date: Tue, 25 Nov 2025 17:47:22 +0800 Subject: [PATCH] 1111 --- lib/app_upgrade_plugin_method_channel.dart | 23 +++++++++++----- lib/app_upgrade_simple.dart | 31 +++++++++++++++++----- lib/core/permission_helper.dart | 16 ++++++++--- 3 files changed, 55 insertions(+), 15 deletions(-) diff --git a/lib/app_upgrade_plugin_method_channel.dart b/lib/app_upgrade_plugin_method_channel.dart index 3ba8782..d45010e 100644 --- a/lib/app_upgrade_plugin_method_channel.dart +++ b/lib/app_upgrade_plugin_method_channel.dart @@ -495,12 +495,23 @@ class MethodChannelAppUpgradePlugin extends AppUpgradePluginPlatform { return true; } debugPrint('当前APP没有上架当前设备对应的应用市场'); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text('当前APP没有上架当前设备对应的应用市场'), - duration: Duration(seconds: 2), - ), - ); + if (context.mounted) { + try { + final scaffoldMessenger = ScaffoldMessenger.maybeOf(context); + if (scaffoldMessenger != null) { + scaffoldMessenger.showSnackBar( + SnackBar( + content: Text('当前APP没有上架当前设备对应的应用市场'), + duration: Duration(seconds: 2), + ), + ); + } else { + debugPrint('提示(无Scaffold): 当前APP没有上架当前设备对应的应用市场'); + } + } catch (e) { + debugPrint('显示提示失败: $e'); + } + } // Fluttertoast.showToast(msg: '当前APP没有上架当前设备对应的应用市场'); return false; } catch (e) { diff --git a/lib/app_upgrade_simple.dart b/lib/app_upgrade_simple.dart index 34f7f56..7ade107 100644 --- a/lib/app_upgrade_simple.dart +++ b/lib/app_upgrade_simple.dart @@ -524,12 +524,31 @@ class AppUpgradeSimple { if (effectiveConfig.customToast != null) { effectiveConfig.customToast!(message); } else { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(message), - duration: Duration(seconds: 2), - ), - ); + // 检查 context 是否有效且有 Scaffold + if (!context.mounted) { + debugPrint('Toast消息(context已卸载): $message'); + return; + } + + try { + // 尝试获取 ScaffoldMessenger,如果失败则使用 debugPrint + final scaffoldMessenger = ScaffoldMessenger.maybeOf(context); + if (scaffoldMessenger != null) { + scaffoldMessenger.showSnackBar( + SnackBar( + content: Text(message), + duration: Duration(seconds: 2), + ), + ); + } else { + // 如果没有 Scaffold,使用 debugPrint 作为后备方案 + debugPrint('Toast消息(无Scaffold): $message'); + } + } catch (e) { + // 如果出现任何错误,使用 debugPrint 作为后备方案 + debugPrint('显示Toast失败: $e'); + debugPrint('Toast消息: $message'); + } } } diff --git a/lib/core/permission_helper.dart b/lib/core/permission_helper.dart index 25dae97..adb5569 100644 --- a/lib/core/permission_helper.dart +++ b/lib/core/permission_helper.dart @@ -267,9 +267,19 @@ class PermissionHelper { message = '未授予安装权限,无法完成更新。'; break; } - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message)), - ); + try { + final scaffoldMessenger = ScaffoldMessenger.maybeOf(context); + if (scaffoldMessenger != null) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(message)), + ); + } else { + debugPrint('权限提示(无Scaffold): $message'); + } + } catch (e) { + debugPrint('显示权限提示失败: $e'); + debugPrint('权限提示: $message'); + } } return status == InstallPermissionStatus.granted;