问题标签 [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.
ios - 使用 UIDocumentBrowserViewController 选择文件夹
我正在开发一个新应用程序,我希望用户能够从 iCloud 或外部驱动器中选择一个文件夹。如何允许他们使用 UIDocumentBrowserViewController 选择文件夹?
我尝试将 allowedContentTypes 设置为文件夹的 UTI,“public.directory”,但文档浏览器不允许选择文件夹。
swift - 在 Mac Catalyst 中使用文档浏览器视图控制器
我刚刚开始尝试使用 Catalyst。我的应用程序是基于文档浏览器的应用程序。
单击适当的按钮时,确实会启动库存的 MacOS Finder 对话框。当 Finder 对话框出现时,主应用程序窗口完全消失,除非我在 IB 中选择文档浏览器视图控制器以“自动”模式出现。
取消操作确实会带回主窗口。
但是,选择一个文件将产生一个空白屏幕并且没有结果。稍微调试一下,发现没有调用任何文件选择函数,我已经实现了所有这些函数:
Catalyst 中是否使用了其他函数或句柄?我在文档中一无所获。
编辑:我应该澄清我操纵应用程序在 DocumentBrowserViewController 之前呈现 DocumentViewController,尽管 Apple 要求 DocumentBrowserViewController 是初始视图控制器。我通过更改应用程序委托来做到这一点:
把它拿出来仍然不会改变任何事情。从文档浏览器模板创建的默认项目似乎确实有效。什么可以阻止这些方法被调用?
ios - 从 UIDocumentBrowserViewController 获取 UIActivityViewController 的 sourceRect
我正在尝试将自定义活动添加到我的 UIDocumentBrowserController 长按菜单 - UIActivityViewController。选中后,默认共享活动会很好地指向用户刚刚长按的文件图标。
如何获取 sourceRect 以便我的活动可以以类似的方式呈现?
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)
,但这不起作用(没有读取权限)
谢谢大家!
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}}
ios - 浏览文件并希望在服务器上上传
我正在使用 UIDocumentBrowserViewController 浏览文件并从 UIDocumentBrowserViewControllerDelegate 方法获取所选文件的 URL。
现在我必须将此文件上传到我们的应用服务器,所以我试图将其转换为数据,但它没有转换。收到错误“无法打开文件“文件名”,因为没有这样的文件”。
ios - 使 UIDocumentBrowserViewController 在首次启动时立即创建新文档
我有一个与 UIDocumentBrowserViewController 配合良好的基于文档的应用程序。但是,对于没有文档的全新用户来说,直接在文档浏览器中启动是一种非常令人困惑的初次体验。我已经让它检测我的文件格式中是否有任何本地文档,如果没有,则显示一个入职屏幕,但我也希望它完全“跳过”文档浏览器并在第一次立即创建一个新文档。
然而,一切的整个生命周期似乎都与文档浏览器息息相关,更不用说它在将文件导入 iCloud 等方面所做的所有聪明的事情。我似乎无法绕过文档浏览器。处理这个问题的最佳方法是什么?
我试图在启动和使用时创建一个新文件,revealDocument(at:importIfNeeded:completion:)
但我遇到了 EXC_BAD_ACCESS 崩溃(没有任何错误消息)所以不确定这是否是正确的探索途径。
ios - 让用户在使用 SwiftUI 和 DocumentGroup 时选择要创建的文档类型
我的基于文档的应用程序支持几种不同的文件类型。它目前是用 SwiftUI 编写的,使用UIDocumentBrowserViewController
. 我正在尝试转换为DocumentGroup
您不直接使用 UIDocumentBrowserViewController 的新 SwiftUI (v2) 范例。我需要让用户在点击浏览器中的“创建”按钮时选择要创建的文档类型。使用 DocumentGroup,我看不出这是怎么可能的。创建 DocumentGroup 时,必须在此处指定文档:
使用 UIKit 时,浏览器会调用一个委托函数didRequestDocumentCreationWithHandler
,让应用程序在继续之前注入一些 UI 以选择文档类型。事实上,您可以做的是为文档浏览器提供一个模板文件,用于创建新文档。这在 SwiftUI 2 中可能吗?
ios - Swift UIDocument 保存不可靠
为什么调用.save
外部(iCloud)UIDocument 如此棘手?:皱眉: 它要么:
- 永远需要并且不保存,或者
- 保存操作失败,尽管
startAccessingSecurityScopedResource()
在保存调用之前调用。 - 有时会随机保存!
所以不确定我在这里错过了什么。这是我的保存位代码(我只处理纯文本文件):
即使在保存操作之后,我用于保存的文本框也会保持文本加载,这就是为什么我没有真正关闭 UIDocument (我真的需要先关闭文档再说,再次打开同一个文档还是打开另一个文档?)。我只在编辑完成或按下完成按钮时保存更改。
非常感谢您的帮助!