问题标签 [uidocumentbrowserviewcontroller]

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 回答
1033 浏览

ios - 使用 UIDocumentBrowserViewController 选择文件夹

我正在开发一个新应用程序,我希望用户能够从 iCloud 或外部驱动器中选择一个文件夹。如何允许他们使用 UIDocumentBrowserViewController 选择文件夹?

我尝试将 allowedContentTypes 设置为文件夹的 UTI,“public.directory”,但文档浏览器不允许选择文件夹。

0 投票
1 回答
933 浏览

swift - 在 Mac Catalyst 中使用文档浏览器视图控制器

我刚刚开始尝试使用 Catalyst。我的应用程序是基于文档浏览器的应用程序。

单击适当的按钮时,确实会启动库存的 MacOS Finder 对话框。当 Finder 对话框出现时,主应用程序窗口完全消失,除非我在 IB 中选择文档浏览器视图控制器以“自动”模式出现。

取消操作确实会带回主窗口。

但是,选择一个文件将产生一个空白屏幕并且没有结果。稍微调试一下,发现没有调用任何文件选择函数,我已经实现了所有这些函数:

Catalyst 中是否使用了其他函数或句柄?我在文档中一无所获。

编辑:我应该澄清我操纵应用程序在 DocumentBrowserViewController 之前呈现 DocumentViewController,尽管 Apple 要求 DocumentBrowserViewController 是初始视图控制器。我通过更改应用程序委托来做到这一点:

把它拿出来仍然不会改变任何事情。从文档浏览器模板创建的默认项目似乎确实有效。什么可以阻止这些方法被调用?

0 投票
1 回答
196 浏览

ios - 从 UIDocumentBrowserViewController 获取 UIActivityViewController 的 sourceRect

我正在尝试将自定义活动添加到我的 UIDocumentBrowserController 长按菜单 - UIActivityViewController。选中后,默认共享活动会很好地指向用户刚刚长按的文件图标。

如何获取 sourceRect 以便我的活动可以以类似的方式呈现?

0 投票
0 回答
122 浏览

ios - 从共享文档文件夹的其他应用程序读取文件,无需 UIDocumentBrowserViewController

我需要两个独立应用程序之间的某种文件共享功能(不能使用 AppGroup 或类似的东西)。App1 应该向 App2 发送n 个文档(n可以是数百个),App2 应该详细说明这些文档并将详细说明的文档发送回 App1。我想要最少的用户交互(所以我不会使用 UIActivityViewController 或类似的解决方案)

到目前为止,我正在使用自定义 url来允许应用程序调用自己,并使用通用UIPasteboard来共享文档。但由于我无法控制文件的数量或大小,我担心这个解决方案不可靠

所以我正在看一下 iOS 11 中引入的共享功能,我可以看到使用

UISupportsDocumentBrowser = TRUE

进入 App1 的 plist,我可以与 Files 应用程序或任何基于文档的应用程序共享所有文档目录。

但是我不明白是否可以在不使用 UIDocumentBrowserViewController的情况下使用某种 API 从 App1 的文档文件夹中获取文件。

就像是:

  • App1设置UISupportsDocumentBrowser,LSSupportsOpeningDocumentsInPlace,UIFileSharingEnabled = true并共享其文件夹
  • App1 调用 App2 的自定义 url,其中包含 App1 文档文件夹中的文件 url 列表
  • App2 启动并获取从这些 url 读取的文件(因为 App1 共享其文档文件夹,所以可以访问这些文件)

有谁知道这是否可能并且有一个API可以做到这一点?

我已经尝试UISupportsDocumentBrowser,LSSupportsOpeningDocumentsInPlace,UIFileSharingEnabled = TRUE在 App1 中进行设置,并且只是尝试从 App2 中使用 读取 App1 的文档文件夹中的文件 url Data(contentsOf: url),但这不起作用(没有读取权限)

谢谢大家!

0 投票
1 回答
105 浏览

ios - UIDocumentBrowserViewController 返回错误导入到 Dropbox

我正在使用 UIDocumentBrowserViewController 并在尝试使用 Dropbox 创建新文件时遇到以下错误:

Couldn’t communicate with a helper application.

iCloud 或“在我的 iPad 上”(本地存储)不会发生该错误。

这个错误是什么意思?

更具体地说,我有以下代码来调用importHandler

打电话后,importHandler我接到func documentBrowser(controller: UIDocumentBrowserViewController, failedToImportDocumentAt documentURL: URL, error: Error?)了上面错误的电话。

Apple 的 Particles 应用程序似乎运行良好,所以这是我的配置所特有的。

将提交 DTS 并更新此问题。

更新

我在设备控制台中注意到以下错误:

importDocument: Unable to import the file to the FileProvider. Error: Error Domain=NSCocoaErrorDomain Code=4101 UserInfo={NSFileProviderErrorItemName=<private>, NSUserStringVariant=Move, NSFilePath=<private>, NSUnderlyingError=0x282d11dd0 {Error Domain=DBFileProviderErrorDomain Code=1}}

0 投票
1 回答
57 浏览

ios - 浏览文件并希望在服务器上上传

我正在使用 UIDocumentBrowserViewController 浏览文件并从 UIDocumentBrowserViewControllerDelegate 方法获取所选文件的 URL。

现在我必须将此文件上传到我们的应用服务器,所以我试图将其转换为数据,但它没有转换。收到错误“无法打开文件“文件名”,因为没有这样的文件”。

0 投票
1 回答
124 浏览

ios - 使 UIDocumentBrowserViewController 在首次启动时立即创建新文档

我有一个与 UIDocumentBrowserViewController 配合良好的基于​​文档的应用程序。但是,对于没有文档的全新用户来说,直接在文档浏览器中启动是一种非常令人困惑的初次体验。我已经让它检测我的文件格式中是否有任何本地文档,如果没有,则显示一个入职屏幕,但我也希望它完全“跳过”文档浏览器并在第一次立即创建一个新文档。

然而,一切的整个生命周期似乎都与文档浏览器息息相关,更不用说它在将文件导入 iCloud 等方面所做的所有聪明的事情。我似乎无法绕过文档浏览器。处理这个问题的最佳方法是什么?

我试图在启动和使用时创建一个新文件,revealDocument(at:importIfNeeded:completion:)但我遇到了 EXC_BAD_ACCESS 崩溃(没有任何错误消息)所以不确定这是否是正确的探索途径。

0 投票
1 回答
263 浏览

ios - 如何使用 UIDocumentInteractionController 将视频文件保存到 iOS 文件应用程序

我想将一个或多个 mov/mp4 文件写入 iOS 文件应用程序,但找不到如何使用 UIDocumentInteractionController 执行此操作。使用 UIDocumentInteractionController 在 iOS 文件应用程序中寻找示例代码以将文件复制到我的应用程序的子文件夹。请参阅示例屏幕截图以了解我想要的内容。

在此处输入图像描述

0 投票
0 回答
459 浏览

ios - 让用户在使用 SwiftUI 和 DocumentGroup 时选择要创建的文档类型

我的基于文档的应用程序支持几种不同的文件类型。它目前是用 SwiftUI 编写的,使用UIDocumentBrowserViewController. 我正在尝试转换为DocumentGroup您不直接使用 UIDocumentBrowserViewController 的新 SwiftUI (v2) 范例。我需要让用户在点击浏览器中的“创建”按钮时选择要创建的文档类型。使用 DocumentGroup,我看不出这是怎么可能的。创建 DocumentGroup 时,必须在此处指定文档:

使用 UIKit 时,浏览器会调用一个委托函数didRequestDocumentCreationWithHandler,让应用程序在继续之前注入一些 UI 以选择文档类型。事实上,您可以做的是为文档浏览器提供一个模板文件,用于创建新文档。这在 SwiftUI 2 中可能吗?

0 投票
0 回答
47 浏览

ios - Swift UIDocument 保存不可靠

为什么调用.save外部(iCloud)UIDocument 如此棘手?:皱眉: 它要么:

  1. 永远需要并且不保存,或者
  2. 保存操作失败,尽管 startAccessingSecurityScopedResource()在保存调用之前调用。
  3. 有时会随机保存!

所以不确定我在这里错过了什么。这是我的保存位代码(我只处理纯文本文件):

即使在保存操作之后,我用于保存的文本框也会保持文本加载,这就是为什么我没有真正关闭 UIDocument (我真的需要先关闭文档再说,再次打开同一个文档还是打开另一个文档?)。我只在编辑完成或按下完成按钮时保存更改。

非常感谢您的帮助!