问题标签 [uidocumentpickerviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
150 浏览

ios - 如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?

我已经像下面这样定义了 documentPicker,但我现在想获取上传的 pdf 的大小(以字节为单位)。

例如,它在如下图像的情况下工作:

0 投票
0 回答
328 浏览

ios - 打开 UIDocumentPickerViewController 时出错

我正在尝试从我的 Viewcontroller 中呈现 UIDocumentPickerViewController。有时我会收到错误消息,说无法与帮助应用程序通信。

我展示 DocumentPickerViewController 的方式是:

其中, BHFilePickerViewController 是我的UIDocumentPickerViewController类型的自定义类。

发生问题时,我可以看到日志为

我是否以错误的方式呈现它?你有什么可以改进的?先感谢您。

0 投票
2 回答
385 浏览

swift - 无法使用 xcode 为我的 iphone 应用程序打开 PDF

我有一个 iPhone 应用程序,我实现了一个UIDocumentPickerViewController. 一旦用户选择了PDF我收到URL的 PDF。

我正在尝试获取该 PDF 的数据,以便将其发送到我的服务器,但我得到以下响应:

这就是我尝试将其转换为数据的方式:

我在某处读过沙盒应用程序无法读取文件,但是当我查看目标功能时,我什至看不到沙盒功能。

任何想法为什么会发生这种情况?谢谢

0 投票
1 回答
3586 浏览

ios - 在 iOS 13 中从外部存储读取文件

我有一个 iOS 应用程序正在尝试从外部存储设备读取文件而不将它们导入应用程序的沙箱。

我已按照此处概述的 Apple 文档来执行此操作-

提供对目录的访问

我能够检索所选目录(位于通过 Lightning 端口连接的外部存储设备上)并枚举目录中的文件。

但是,当我尝试按照推荐的模式对这些文件执行某些操作时,我会失败,并且基本上会在文件上出现权限错误。

我应该补充一点,如果文件通过模拟器在 iCloud Drive 上,这可以正常工作。它在外部设备和真实设备上的 iCloud Drive 上都失败。

是一个演示失败的完整工作项目。

  1. 在模拟器上运行可以很好地访问 iCloud Drive 文件。但在设备上运行失败。
  2. 在设备上运行以访问 USB 驱动器失败。
0 投票
2 回答
1074 浏览

ios - UIDocumentPickerViewController 没有在 Mac Catalyst 上调用 didPickDocumentAtURL

我有这个代码UIViewController确认UIDocumentPickerDelegate

这在 iOS 中运行良好。在 Mac Catalyst 中,文件选择器打开,我可以导航并选择一个文件,但是当我单击选择器中的打开按钮时,两者都没有didPickDocumentAtURLs调用也不didPickDocumentAtURL调用。但是,如果我单击选择器中的取消按钮,documentPickerWasCancelled则会调用。

当我单击打开时,控制台中会出现此错误:

无法将所选 URL 文件的缩略图:///**** 与收件箱副本文件:///**** 关联:错误域 = QLThumbnailErrorDomain 代码 = 102“(空)”用户信息 = {NSUnderlyingError = 0x600000da9a10 {错误Domain=GSLibraryErrorDomain Code=7 "没有存储文件:///****" UserInfo={NSDescription=没有存储文件:///****}}}

我认为这可能意味着我的沙盒安全设置有问题,但是当我将选择器模式更改为 时UIDocumentPickerModeOpen,该错误不再发生但didPickDocumentAtURL仍然没有被调用。无论如何,这是我的沙盒设置:

沙盒设置,用户选择的文件设置为读/写

我看过有关文档选择器打开空白的帖子,但这不是问题所在。我只看过一篇似乎证实它确实有效的帖子,但那是使用 Swift ......它是否可以在 Swift 中工作但在 Objective C 中被破坏?我还缺少其他东西来完成这项工作吗?

更新

这是一个新的 Xcode 项目,其中包含演示问题的最少代码。与我的完整项目一样,这在 iOS 上运行良好,但不会didPickDocument...在 Mac 上调用委托方法。

0 投票
1 回答
768 浏览

ios - 为什么我的 UIDocumentPickerViewController 返回我无法访问的 url?

我正在使用 uIdocumentPickerViewController 在 firebase 中上传 pdf 文件,但是当我尝试上传它时,我收到一条错误消息,指出该文件不可访问。

这是我的 uidocumentPickerViewController 代表的代码:

这是我在选择我的 pdf 文件后遇到的错误:

URL 中的文件:file:///private/var/mobile/Containers/Shared/AppGroup/7BE40C45-A4B5-4EE0-8AFF-789B2F93C1F6/File%20Provider%20Storage/Document%20PDF.pdf 无法访问。

域=NSCocoaErrorDomain 代码=257 xcode

0 投票
1 回答
245 浏览

ios - 需要允许 ppt 文件被 UIDocumentPicker 选中

我需要允许 ppt、docx、xlsx 和 pdf 文件仅由我的应用程序中的文档选择器拾取。初始化文档选择器时需要设置哪些文档类型?

0 投票
1 回答
140 浏览

ios - 如何获取 UIDocumentPickerViewController 返回的 URL 的显示文件夹名称和 App 图标?

如何获取 UIDocumentPickerViewController 返回的 URL 的显示文件夹名称和 App 图标?

这是我的Swift操场代码示例和下面的一些调试打印输出:

案例 1:打开某个 App 的文件夹iCloud Drive(对于此示例PDF Viewer):

案例 2Dir :从以下位置打开同一文档目录的子文件夹iCloud Drive

PDF Viewer由于我的设备上的相同应用程序中的文档也很少On My iPhone,因此本地文档有两种相同的情况(目录/子目录):

案例 3PDF Viewer :打开来自的本地文件夹On My iPhone

案例 4:本地子文件夹:

问题

  • 因为可以看到URL's 方法不适用于本地文件promisedItemResourceValues(forKeys:).ubiquitousItemContainerDisplayNameKey如何获取应用程序的名称,该Documents文件夹用于本地文件(与displayName1iCloud 的 1/2 情况下的输出结果相同)?
  • 是否可以获得与显示相同的应用程序图标UIDocumentPickerViewController

PS我知道通过使用私有API,因为LSApplicationWorkspace我可以使用提取的应用程序包ID(XXXXXXXX-YYYY-ZZZZ-AAAA-BBBBBBBBBBBB来自URL)来获取应用程序的名称和图标,但是需要一种公开的方式才能将我的应用程序提交给稍后的 AppStore。

提前感谢您的关注和帮助。

0 投票
1 回答
148 浏览

ipad - UIDocumentPickerViewController 复制的文件在下载时消失以测试 iPad

我正在使用 UIDocumentPickerViewController 来允许用户选择将“附加”并在应用程序中可用的文件。这个概念是允许用户通过电子邮件发送带有所选文件附件的详细信息。
附加每个文件后,我将文件从 tmp 收件箱(fileManager 将导入的文件放在其中)复制到我在 App 文档目录中创建的名为“fileAttachments”的目录中。
我在 UITableView 中列出文件,用户可以选择每个条目并使用存储在文件对象 fileOJ.filePath 中的路径预览 QLPreviewController 视图中的内容。
这一切都运行良好,直到将项目重新加载到我的测试 iPad 上,然后所有文件似乎都消失了。我的文件列表仍然很好,但路径位置没有文件。
任何有关正在发生的事情的帮助将不胜感激。

0 投票
0 回答
110 浏览

ios - UIDocumentPickerController 访问被拒绝 Cocoa 错误 257

我正在尝试将自定义文件从我的一个应用程序导入另一个应用程序(我们称它们为 App_A 和 App_B)。如果我直接从 App_A 导出文件并在共享表中选择 App_B 一切正常。

我的问题是文件保存在 iCloud Drive 中,因此用户可以通过系统的文件应用程序访问它。当我尝试从 Files 应用程序或 App_B 中通过UIDocumentPickerViewController.

在这两种情况下,我都运行以下代码(内部UIDocumentPickerDelegateAppDelegate):

我得到的错误总是一样的:

Error Domain=NSCocoaErrorDomain Code=257 ... NSUnderlyingError=0x2803e07b0 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}}并且url.startAccessingSecurityScopedResource()总是返回false

我在设备上的 Xcode 11.4.1、Swift 5、iOS 13.3.1 和模拟器上的 13.4.1 上执行此操作,但结果没有改变。

你对这个奇怪的错误有什么想法吗?我想如果用户选择一个文件和一个应用程序来打开它,就会授予权限,但可能我错过了一些东西。你能帮忙吗?