controller.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'dart:io';
  2. import 'package:get/get.dart';
  3. import 'package:o2oa_all_platform/common/index.dart';
  4. import 'package:url_launcher/url_launcher.dart';
  5. // import 'package:open_file/open_file.dart';
  6. import 'index.dart';
  7. class LogListController extends GetxController {
  8. LogListController();
  9. final state = LogListState();
  10. final channel = O2FlutterMethodChannelUtils();
  11. // tap
  12. void handleTap(int index) {
  13. Get.snackbar(
  14. "标题",
  15. "消息",
  16. );
  17. }
  18. /// 在 widget 内存中分配后立即调用。
  19. @override
  20. void onInit() {
  21. super.onInit();
  22. }
  23. /// 在 onInit() 之后调用 1 帧。这是进入的理想场所
  24. @override
  25. void onReady() {
  26. loadLogList();
  27. super.onReady();
  28. }
  29. /// 在 [onDelete] 方法之前调用。
  30. @override
  31. void onClose() {
  32. super.onClose();
  33. }
  34. /// dispose 释放内存
  35. @override
  36. void dispose() {
  37. super.dispose();
  38. }
  39. void openLogFile(String filePath, String fileName) {
  40. OLogger.d('打开日志文件, path: $filePath');
  41. if (GetPlatform.isDesktop) {
  42. openInPc(filePath);
  43. } else {
  44. channel.openLocalFile(filePath);
  45. }
  46. }
  47. openInPc(String filePath) async {
  48. // 使用本地软件打开文件
  49. final Uri uri = Uri.file(filePath);
  50. if (!await launchUrl(uri)) {
  51. OLogger.e('无法打开?');
  52. }
  53. }
  54. Future<void> loadLogList() async {
  55. final dir = await O2FilePathUtil.getLogPath();
  56. if (dir != null) {
  57. final list = dir.listSync();
  58. if (list.isNotEmpty) {
  59. for (var element in list) {
  60. if (element is File) {
  61. state.logList.add(element);
  62. }
  63. }
  64. }
  65. }
  66. }
  67. }