111
This commit is contained in:
parent
f46f53962f
commit
f7d44c9a34
|
|
@ -496,22 +496,30 @@ class MethodChannelAppUpgradePlugin extends AppUpgradePluginPlatform {
|
|||
}
|
||||
debugPrint('当前APP没有上架当前设备对应的应用市场');
|
||||
if (context.mounted) {
|
||||
try {
|
||||
// 检查是否有 Scaffold 在 widget 树中
|
||||
final scaffold = Scaffold.maybeOf(context);
|
||||
if (scaffold == null) {
|
||||
debugPrint('提示(无Scaffold): 当前APP没有上架当前设备对应的应用市场');
|
||||
} else {
|
||||
// 使用 maybeOf 安全地获取 ScaffoldMessenger
|
||||
final scaffoldMessenger = ScaffoldMessenger.maybeOf(context);
|
||||
if (scaffoldMessenger != null) {
|
||||
if (scaffoldMessenger == null) {
|
||||
debugPrint('提示(无ScaffoldMessenger): 当前APP没有上架当前设备对应的应用市场');
|
||||
} else {
|
||||
// 使用 try-catch 捕获所有可能的错误
|
||||
try {
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -524,30 +524,44 @@ class AppUpgradeSimple {
|
|||
if (effectiveConfig.customToast != null) {
|
||||
effectiveConfig.customToast!(message);
|
||||
} else {
|
||||
// 检查 context 是否有效且有 Scaffold
|
||||
// 检查 context 是否有效
|
||||
if (!context.mounted) {
|
||||
debugPrint('Toast消息(context已卸载): $message');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// 尝试获取 ScaffoldMessenger,如果失败则使用 debugPrint
|
||||
// 检查是否有 Scaffold 在 widget 树中
|
||||
final scaffold = Scaffold.maybeOf(context);
|
||||
if (scaffold == null) {
|
||||
// 如果没有 Scaffold,使用 debugPrint 作为后备方案
|
||||
debugPrint('Toast消息(无Scaffold): $message');
|
||||
return;
|
||||
}
|
||||
|
||||
// 使用 maybeOf 安全地获取 ScaffoldMessenger
|
||||
final scaffoldMessenger = ScaffoldMessenger.maybeOf(context);
|
||||
if (scaffoldMessenger != null) {
|
||||
if (scaffoldMessenger == null) {
|
||||
// 如果没有 ScaffoldMessenger,使用 debugPrint 作为后备方案
|
||||
debugPrint('Toast消息(无ScaffoldMessenger): $message');
|
||||
return;
|
||||
}
|
||||
|
||||
// 即使有 Scaffold 和 ScaffoldMessenger,也可能出现其他问题
|
||||
// 使用 try-catch 捕获所有可能的错误
|
||||
try {
|
||||
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');
|
||||
// 捕获所有错误,包括断言错误
|
||||
// 在调试模式下,断言错误可能仍然会显示,但不会导致应用崩溃
|
||||
debugPrint('显示Toast失败(已使用后备方案): $message');
|
||||
if (effectiveConfig.enableDebugLog) {
|
||||
debugPrint('错误详情: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,20 +267,28 @@ class PermissionHelper {
|
|||
message = '未授予安装权限,无法完成更新。';
|
||||
break;
|
||||
}
|
||||
try {
|
||||
// 检查是否有 Scaffold 在 widget 树中
|
||||
final scaffold = Scaffold.maybeOf(context);
|
||||
if (scaffold == null) {
|
||||
debugPrint('权限提示(无Scaffold): $message');
|
||||
} else {
|
||||
// 使用 maybeOf 安全地获取 ScaffoldMessenger
|
||||
final scaffoldMessenger = ScaffoldMessenger.maybeOf(context);
|
||||
if (scaffoldMessenger != null) {
|
||||
if (scaffoldMessenger == null) {
|
||||
debugPrint('权限提示(无ScaffoldMessenger): $message');
|
||||
} else {
|
||||
// 使用 try-catch 捕获所有可能的错误
|
||||
try {
|
||||
scaffoldMessenger.showSnackBar(
|
||||
SnackBar(content: Text(message)),
|
||||
);
|
||||
} else {
|
||||
debugPrint('权限提示(无Scaffold): $message');
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint('显示权限提示失败: $e');
|
||||
debugPrint('权限提示: $message');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return status == InstallPermissionStatus.granted;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue