首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在手机和桌面上工作的文件选择器的Flutter插件,不需要go-flutter?

在手机和桌面上工作的文件选择器的Flutter插件,不需要go-flutter?
EN

Stack Overflow用户
提问于 2021-08-12 00:22:45
回答 3查看 426关注 0票数 0

这似乎是一个不会持续很长时间的问题,但我正在寻找一个最终的解决方案,以便在包括桌面在内的所有平台上打开一个本地文件选择器,而不需要安装go-flutter。

目前我正在使用Flutter.dev的file_selector插件,它适用于web和macOS (我还没有在windows/linux上进行测试)。当我试图在iOS模拟器上运行它时,我得到一个错误。

MissingPluginException(No implementation found for method openFile on channel plugins.flutter.io/file_selector)

我猜这是因为它不支持iOS,也许这个插件只适用于桌面和web。

我也看到了file_picker plugin,但它需要在桌面上安装go-flutter才能工作。我宁愿直接在Android studio中进行热重载/构建,而不需要go-flutter命令来运行桌面模拟。

有没有基本上结合这两件事的一站式解决方案?我对Flutter还很陌生,所以可能我错过了一种非常简单的方式来使用一个或另一个库,这取决于带有某种条件的平台?走这条路看起来有点混乱,但现在可以用了。

我正在寻找的另一个答案是以一种更简单的方式使用桌面file_picker插件的好解决方案,比如如何无缝使用go-flutter。

EN

Stack Overflow用户

发布于 2021-08-12 21:41:47

代码语言:javascript
复制
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart' show kIsWeb;


if (Platform.isAndroid || Platform.isIOS)) {
 // use file_picker plugin
      FilePickerResult? result = await FilePicker.platform.pickFiles();
     if(result != null) {
     File file = File(result.files.single.path);
     } else {
     // User canceled the picker
     }
} else if(kIsWeb) { 
  // use file_selector plugin 
 final typeGroup = XTypeGroup(label: 'images', extensions: ['jpg', 
  'png']);
   final file = await openFile(acceptedTypeGroups: [typeGroup]);
} else {
// use file_picker_desktop
   try {
   final result = await pickFiles(
   allowMultiple: false,
   );
    if (result != null) {
    File file = File(result.files.single.path);
    } else {
    // User canceled the picker
    }
    } catch (e) {
    print(e);
    }
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68750256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档