我正在尝试使用 Flet 构建一个 Python 移动应用程序,我需要它做的事情之一就是接受用户的照片或视频。使用 flet 文档,我尝试了以下代码:
ft.ElevatedButton("Choose files...",
on_click=lambda _: file_picker.pick_files(allow_multiple=True))
在 iOS 上打开文件选择器。这就是这段代码应该做的事情。然而,我的问题是是否有办法打开 iOS 照片选择器。
我已经尝试了多种方法来实现此目的。我考虑过的一个选择是使用 Flet 中已经编写的 Flutter 小部件来完成此任务,但我在 flutter 和 dart 方面缺乏经验,这使得这个过程非常困难。
我想知道是否有人找到了一种更简单的方法来访问iOS 照片选择器而不是文件。
目前,Flet 没有提供直接访问 iOS 照片选择器的内置方法。Flet 中的
file_picker.pick_files
方法是基于 Flutter 的
file_picker
插件,该插件在 iOS 上调用默认的文件选择器。
但是,可以通过以下几种方法尝试实现的目标:
1. 使用 Flet 的外部方法调用:
-
可以创建一个自定义的 Flutter 插件,使用
image_picker
插件来访问 iOS 照片选择器。 - 然后,可以使用 Flet 的外部方法调用功能从的 Python 代码中调用这个自定义 Flutter 插件。
这需要编写一些 Dart 代码,但这可以让完全控制 iOS 照片选择器。
2. 使用 WebView 和 JavaScript:
-
可以创建一个简单的网页,使用 HTML 的
<input type="file" accept="image/*,video/*">
元素来调用 iOS 照片选择器。 - 然后,可以使用 Flet 的 WebView 组件将这个网页嵌入到的应用程序中。
这种方法不需要编写任何 Dart 代码,但可能需要更多代码来处理从 JavaScript 到 Python 的文件传输。
3. 等待 Flet 更新:
- 可以向 Flet 开发团队提交一个功能请求,要求他们添加对直接访问 iOS 照片选择器的支持。
这可能是最简单的解决方案,但它取决于 Flet 开发团队是否会实现此功能。
一些额外的提示:
- 可以参考 Flet 和 Flutter 的文档,了解更多关于外部方法调用、WebView 和自定义插件的信息。
- 可以在 GitHub 上搜索现有的 Flutter 插件,看看是否有任何插件可以满足的需求。
请注意,以上方法都需要对 Flutter 和 Dart 有一定的了解。如果不熟悉 Flutter,建议先学习一些 Flutter 的基础知识。
标签:python,flet From: 78814234