Browse Source

修复弹窗不关闭的问题

weicu
fdp 1 year ago
parent
commit
3b218bd83a
  1. 34
      lib/modules/ota_upgrade/controllers/ota_upgrade_controller.dart
  2. 4
      local_plugins/ota/android/src/main/kotlin/com/example/ota/OtaPlugin.kt
  3. 4
      local_plugins/ota/lib/ota.dart
  4. 4
      local_plugins/ota/lib/ota_method_channel.dart
  5. 2
      local_plugins/ota/lib/ota_platform_interface.dart

34
lib/modules/ota_upgrade/controllers/ota_upgrade_controller.dart

@ -177,9 +177,9 @@ class OtaUpgradeController extends GetxController {
// 版本更新 // 版本更新
Future<void> checkUpdate() async { Future<void> checkUpdate() async {
try { try {
if (latestVersion.value != "") if (latestVersion.value != "") {
_showUpdateDialog(latestVersion.value); _showUpdateDialog(latestVersion.value);
else { } else {
Get.snackbar('错误', '获取最新版本信息失败'); Get.snackbar('错误', '获取最新版本信息失败');
} }
} catch (e) { } catch (e) {
@ -187,26 +187,28 @@ class OtaUpgradeController extends GetxController {
} }
} }
// 显示更新对话框 void _showUpdateDialog(String latest) async {
void _showUpdateDialog(String latest) { print('显示更新对话框');
Get.dialog( Get.dialog(
AlertDialog( AlertDialog(
title: Text('发现新版本 $latest'), title: Text('发现新版本 $latest'),
content: Text('是否立即更新?'), content: Text('是否立即更新?'),
actions: [ actions: [
TextButton( TextButton(
onPressed: () { onPressed: () async {
if (Get.isDialogOpen!) { print('取消按钮被点击');
Get.back(); // 确保只关闭对话框
} Get.back();
Future.delayed(Duration(milliseconds: 300));
}, },
child: Text('取消'), child: Text('取消'),
), ),
TextButton( TextButton(
onPressed: () { onPressed: () async {
if (Get.isDialogOpen!) { print('更新按钮被点击');
Get.back(); // 确保只关闭对话框
} Get.back();
Future.delayed(Duration(milliseconds: 300));
startDownload(); startDownload();
}, },
child: Text('更新'), child: Text('更新'),
@ -266,7 +268,7 @@ class OtaUpgradeController extends GetxController {
if (existingSameFile) { if (existingSameFile) {
Get.snackbar('文件已存在', '跳过下载,直接更新'); Get.snackbar('文件已存在', '跳过下载,直接更新');
_installApp(savePath); startUpgrading(savePath);
return; return;
} }
@ -309,7 +311,7 @@ class OtaUpgradeController extends GetxController {
Get.snackbar('错误', '文件未找到,请检查写入权限'); Get.snackbar('错误', '文件未找到,请检查写入权限');
} }
isDownloading.value = false; isDownloading.value = false;
_installApp(savePath); startUpgrading(savePath);
return; return;
} on DioException catch (e) { } on DioException catch (e) {
Get.snackbar('下载失败', '错误: ${e.message}'); Get.snackbar('下载失败', '错误: ${e.message}');
@ -321,8 +323,8 @@ class OtaUpgradeController extends GetxController {
} }
// 开始升级 // 开始升级
void _installApp(String path) async { void startUpgrading(String path) async {
jlota.searchDevices(path); jlota.startUpgrading(path);
return; return;
// isUpgrade.value = false; // isUpgrade.value = false;
} }

4
local_plugins/ota/android/src/main/kotlin/com/example/ota/OtaPlugin.kt

@ -289,8 +289,8 @@ class OtaPlugin : BleService.Callback, FlutterPlugin, MethodCallHandler {
} }
override fun onMethodCall(call: MethodCall, result: Result) { override fun onMethodCall(call: MethodCall, result: Result) {
if (call.method == "searchDevices") { if (call.method == "startUpgrading") {
Log.d("TAG", "searchDevices") Log.d("TAG", "startUpgrading")
// 接收传入的参数 // 接收传入的参数
val arguments = call.arguments as? Map<String, Any> val arguments = call.arguments as? Map<String, Any>
filePath = (arguments?.get("filePath") as? String).toString() filePath = (arguments?.get("filePath") as? String).toString()

4
local_plugins/ota/lib/ota.dart

@ -138,8 +138,8 @@ class Ota {
_isEventListenerSet = true; _isEventListenerSet = true;
} }
Future<String?> searchDevices(String? filePath) { Future<String?> startUpgrading(String? filePath) {
return OtaPlatform.instance.searchDevices(filePath); return OtaPlatform.instance.startUpgrading(filePath);
} }
Future<String?> onOtaClose() { Future<String?> onOtaClose() {

4
local_plugins/ota/lib/ota_method_channel.dart

@ -10,9 +10,9 @@ class MethodChannelOta extends OtaPlatform {
final methodChannel = const MethodChannel('ota'); final methodChannel = const MethodChannel('ota');
@override @override
Future<String?> searchDevices(String? filePath) async { Future<String?> startUpgrading(String? filePath) async {
final version = await methodChannel.invokeMethod<String>( final version = await methodChannel.invokeMethod<String>(
'searchDevices', 'startUpgrading',
{'filePath': filePath}, // 传递参数 {'filePath': filePath}, // 传递参数
); );
return version; return version;

2
local_plugins/ota/lib/ota_platform_interface.dart

@ -23,7 +23,7 @@ abstract class OtaPlatform extends PlatformInterface {
_instance = instance; _instance = instance;
} }
Future<String?> searchDevices(String? filePath) { Future<String?> startUpgrading(String? filePath) {
throw UnimplementedError('platformVersion() has not been implemented.'); throw UnimplementedError('platformVersion() has not been implemented.');
} }

Loading…
Cancel
Save