Flutter -如何在IOS上保存文件

eimct9ow  于 2022-11-17  发布在  Flutter
关注(0)|答案(4)|浏览(501)

在Android上,我可以使用downloads_path_provider软件包在Downloads文件夹中下载一个pdf文件,但在IOS上,我使用这个软件包时出现错误。如果我使用getApplicationDocumentsDirectory(),我会得到以下路径:/var/mobile/Containers/Data/Application/EBB52CAB-7783-489A-B9C4-4BB7A093B8C3/Documents我想把下载的文件内的iPhone

的文件

8mmmxcuj

8mmmxcuj1#

您应该使用Path Provider来访问设备上下载目录以外的内容,它是官方的Flutter插件,而且很容易使用。
要使用Path Provider访问存储器上的文档目录,请使用以下命令:

Directory documents = await getApplicationDocumentsDirectory();

这将允许您在文档存储中存储文件,您可能需要添加访问存储的权限。
对于android用途:

Directory documents = await getExternalStorageDirectory();

请记住,上述两个目录对用户都是可见的。

gopyfrb3

gopyfrb32#

获取路径

要访问Document目录,你应该使用Flutter插件来查找文件系统上常用的位置。最流行的是path_provider

iOS文件应用程序

对于用户设备上“文件”应用内应用文件夹中的下载文件,您应更新info. plist。
UISupportsDocumentBrowser(布尔值- iOS)指定应用程序是基于文档的应用程序,并使用UIDocumentBrowserViewController类。
如果此键设定为YES,则用户可以在“设置”中设定文稿浏览器的默认保存位置。此外,本地文件提供程序会赠款对应用程序的“文稿”目录中所有文稿的访问权限。这些文稿显示在“文件”应用程序和“文稿浏览器”中。用户可以就地打开和编辑这些文稿。
iOS 11及更高版本支持此密钥。
有关详细信息,请阅读文档:https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW37

axr492tv

axr492tv3#

<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>

添加了这些键,并尝试了一堆东西,在这篇文章的时候。对我来说,解决方案当然是添加这两个键,并使用iOS 14(确切地说是14.1),而不是iOS 15。这是因为iOS 15不支持下载和存储在模拟器上的下载文件夹中的某种原因。

lc8prwob

lc8prwob4#


新增
UISupportsDocumentBrowser
到信息plist并设置为true
然后,您可以在file app中看到包含您的应用程序名称的文件夹。
但需要用
await getApplicationDocumentsDirectory();
保存文件,以便在iOS中的文件应用程序中可用。
欲了解更多信息,请访问

相关问题