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

Har*_*shi 12
您应该使用Path Provider而不是访问设备上的下载目录,它是官方的 Flutter 插件,并且易于使用。
Path Provider使用以下命令访问存储上的 Document 目录:
Directory documents = await getApplicationDocumentsDirectory();
Run Code Online (Sandbox Code Playgroud)
这将允许您将文件存储在文档存储中,您可能需要添加访问存储的权限。
对于安卓使用:
Directory documents = await getExternalStorageDirectory();
Run Code Online (Sandbox Code Playgroud)
请记住,用户可以看到上述两个目录。
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,添加了这些键并尝试了很多事情。对我来说,解决方案当然是添加这两个键并使用 iOS 14(确切地说是 14.1)而不是 iOS 15。这是因为 iOS 15 由于某种原因不支持下载并存储在模拟器的下载文件夹中。
获取路径
要访问 Document 目录,您应该使用 Flutter 插件来查找文件系统上的常用位置。最受欢迎的是path_provider
iOS 文件应用
对于用户设备上“文件”应用程序内应用程序文件夹中的下载文件,您应该更新 info.plist。
UISupportsDocumentBrowser (Boolean - iOS) 指定应用程序是基于文档的应用程序并使用 UIDocumentBrowserViewController 类。
如果此键设置为 YES,用户可以在设置中设置文档浏览器的默认保存位置。此外,本地文件提供程序授予对应用程序文档目录中所有文档的访问权限。这些文档显示在“文件”应用程序和文档浏览器中。用户可以就地打开和编辑这些文档。
iOS 11 及更高版本支持此密钥。
有关更多信息,请阅读文档:https : //developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW37