【问题标题】:How do I allow a user to browse/choose a file from device in iOS如何允许用户在 iOS 设备中浏览/选择文件
【发布时间】:2013-09-26 07:14:46
【问题描述】:

我希望允许用户在我的 iOS 应用程序中上传文件,就像我们在桌面应用程序中通过浏览不同目录上传特定文件一样。我也做了一些谷歌搜索,但没有找到可靠的解决方案。

有人这么说。

如果您运行的是非越狱手机,则整个文件系统不可用。也没有文件系统浏览器控件(出于相同的原因),但是您可以浏览用户的照片库,甚至可以使用 UIImagePickerController 使用相机拍照。

有些问题是这样的

通过这些链接和其他来源, 我只是很困惑,我可以在按钮点击时向用户提供文件浏览选项。如果是,那么如何实现?任何帮助将不胜感激。

如果用户点击浏览按钮,列表应该像

【问题讨论】:

  • “某人”可能是正确的,我们没有任何授权或 API 允许访问文件或系统树,因为在 iPhone 中不存在可见的东西。
  • 但该图像来自 Android。该操作系统具有启用这种应用程序间通信的特定功能。在 iOS 中,您的应用程序必须实现所需的功能。
  • @allprog 是的,这张图片来自我正在使用的应用程序的 android 版本,我想在 iOS 版本中浏览文件时也这样做,所以为了更好地理解我在这里上传了这张图片。
  • 你找到解决这个问题的方法了吗?
  • @Tommy 直到那天我还没有找到任何可靠的解决方案来实现这个功能,今天我也遇到了同样的要求并开始谷歌搜索......

标签: iphone ios objective-c ipad


【解决方案1】:

iPhone 应用程序是沙盒的。这意味着您只能访问 AppBundle 中的文件/文件夹(如 Documents、Cache 等)。这就是上面提到的 URL 所暗示的。您只能从这些文件夹上传/下载数据。

现在,如果您的手机越狱,情况就不同了。不深究。

查看此链接:

Apple iOS Environment 下那个The App Sandbox

【讨论】:

    【解决方案2】:

    没有为此目的的标准控件,但是使用您引用的帖子中提到的方法,填充表格视图是完全可行的。请记住,这将允许您查看应用程序沙箱中的文件。您无法访问其他应用程序的文件。

    或者,您可以使用ios_file_browseriOS-File-Browser 等开源库。这些提供了用户界面,您也可以查看实现。

    【讨论】:

      【解决方案3】:

      从 iOS 8 开始,您可以使用 UIDocumentPickerViewController,“一个视图控制器,提供对应用沙箱之外的文档或目的地的访问”:

      https://developer.apple.com/documentation/uikit/uidocumentpickerviewcontroller

      【讨论】:

        【解决方案4】:

        我是FileExplorer 控件的作者,它是iOS 的文件浏览器。它允许您以用户友好的方式浏览放置在沙箱中的文件和目录。

        以下是我的控件的一些功能:

        1. 可以根据需要选择文件或/和目录
        2. 如果需要,可以删除文件或/和目录
        3. 内置搜索功能
        4. 查看音频、视频、图像和 PDF 文件。
        5. 可以添加对任何文件类型的支持。

        你可以找到我的控件here

        【讨论】:

        • Augustyniak:感谢您的回答,但我希望允许用户浏览根目录而不是仅通过应用程序包中的文件!
        猜你喜欢
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-25
        相关资源
        最近更新 更多