如何允许用户在 iOS 设备中浏览/选择文件
Posted
技术标签:
【中文标题】如何允许用户在 iOS 设备中浏览/选择文件【英文标题】:How do I allow a user to browse/choose a file from device in iOS 【发布时间】:2013-09-26 07:14:46 【问题描述】:我希望允许用户在我的 ios 应用程序中上传文件,就像我们在桌面应用程序中通过浏览不同目录上传特定文件一样。我也做了一些谷歌搜索,但没有找到可靠的解决方案。
有人这么说。
如果您运行的是非越狱手机,则整个文件系统不可用。也没有文件系统浏览器控件(出于相同的原因),但是您可以浏览用户的照片库,甚至可以使用 UIImagePickerController 使用相机拍照。
有些问题是这样的
Is iOS developer able to view file systeme How to list all folders and their subdirectories/files in iPhone SDK通过这些链接和其他来源, 我只是很困惑,我可以在按钮点击时向用户提供文件浏览选项。如果是,那么如何实现?任何帮助将不胜感激。
如果用户点击浏览按钮,列表应该像
【问题讨论】:
“某人”可能是正确的,我们没有任何授权或 API 允许访问文件或系统树,因为在 iPhone 中不存在可见的东西。 但该图像来自 android。该操作系统具有启用这种应用程序间通信的特定功能。在 iOS 中,您的应用程序必须实现所需的功能。 @allprog 是的,这张图片来自我正在使用的应用程序的 android 版本,我想在 iOS 版本中浏览文件时也这样做,所以为了更好地理解我在这里上传了这张图片。 你找到解决这个问题的方法了吗? @Tommy 直到那天我还没有找到任何可靠的解决方案来实现这个功能,今天我也遇到了同样的要求并开始谷歌搜索...... 【参考方案1】:iPhone 应用程序是沙盒的。这意味着您只能访问 AppBundle 中的文件/文件夹(如 Documents、Cache 等)。这就是上面提到的 URL 所暗示的。您只能从这些文件夹上传/下载数据。
现在,如果您的手机越狱,情况就不同了。不深究。
查看此链接:
Apple iOS Environment 下那个The App Sandbox
【讨论】:
【参考方案2】:没有为此目的的标准控件,但是使用您引用的帖子中提到的方法,填充表格视图是完全可行的。请记住,这将允许您查看应用程序沙箱中的文件。您无法访问其他应用程序的文件。
或者,您可以使用ios_file_browser 或iOS-File-Browser 等开源库。这些提供了用户界面,您也可以查看实现。
【讨论】:
【参考方案3】:从 iOS 8 开始,您可以使用 UIDocumentPickerViewController,“一个视图控制器,提供对应用沙箱之外的文档或目的地的访问”:
https://developer.apple.com/documentation/uikit/uidocumentpickerviewcontroller
【讨论】:
【参考方案4】:我是FileExplorer 控件的作者,它是iOS 的文件浏览器。它允许您以用户友好的方式浏览放置在沙箱中的文件和目录。
以下是我的控件的一些功能:
-
可以根据需要选择文件或/和目录
如果需要,可以删除文件或/和目录
内置搜索功能
查看音频、视频、图像和 PDF 文件。
可以添加对任何文件类型的支持。
你可以找到我的控件here。
【讨论】:
Augustyniak:感谢您的回答,但我希望允许用户浏览根目录而不是仅通过应用程序包中的文件!以上是关于如何允许用户在 iOS 设备中浏览/选择文件的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 插件,允许用户浏览文件并上传所选文件 (iOS)
iOS - 如何在 iOS 应用上跟踪用户对推送通知的选择?