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