如何允许用户在 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 应用上跟踪用户对推送通知的选择?

使用 Swift 2 将不允许 iOS 8 设备注册推送通知

jQuery - 从文本区域中删除用户输入文本

如何在ios的objective-c中从设备中选择任何文档文件