问题标签 [uidocumentinteractioncontroller]

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 投票
2 回答
208 浏览

ios - UIDocumentInteractionController 在 Mac 催化剂中不可用

执行以下代码时,应用程序可能会崩溃。

代码: self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:targetURL];

崩溃日志: 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“UIDocumentInteractionController 不可用”

这个问题或任何替代课程有什么解决方案吗?

0 投票
1 回答
482 浏览

ios - 使用 UIActivityViewController/UIDocumentInteractionController 的文件共享不起作用 - [无法通过 AirDrop、Whatapp、iMessage、Mail 等共享]

在尝试使用设备的共享表功能共享我下载到我的应用程序的“.mp3”文件时,我能够从文档目录中获取文件但无法共享它。

当我尝试通过 Whatsapp 分享它时,我收到一条错误消息:

此项目无法共享。请选择其他项目。

如果我通过 AirDrop 共享,它只会显示“失败”(红色),通过其他选项共享会导致一条空白消息(例如,一封没有附加文件的新电子邮件或一个没有任何内容的新消息)

以下是我迄今为止尝试过的代码选项:

选项 1 - 使用 UIActivityViewController

选项 2 - 使用 UIDocumentInteractionController

在这两个选项中,我确实获得了文件,但无法共享它。手机确实将共享识别为音频文件,但我对此无能为力。

示例网址:

file:///Users/UserName/Library/Developer/CoreSimulator/Devices/C8B09E62-091F-4E61-BA6C-3D9EC23LKC01/data/Containers/Data/Application/EF2CKKJF-AB35-55G5-B778-439812EFGGG5/Documents/audioFile.mp3

共享适用于文本,但不适用于音频文件。

我是否还需要启用某些功能或向 AppDelegate 添加一些代码?

感谢任何帮助。谢谢。

更新 #1:来自@dfd 建议的代码[仍然不起作用]

此外,对于所有这些选项,我在共享表中将音频文件 (mp3) 作为“音频录制”。

0 投票
1 回答
412 浏览

ios - iOS14“保存到文件”菜单中缺少按钮

我发现我的代码在 iOS13 / iOS14 上的行为不同。我正在下载 pdf 文件并使用 UIDocumentInteractionController 显示它

显示pdf后,我单击“保存”按钮。这是区别:

iOS13

iOS14

缺少保存和取消按钮。如何解决?我正在考虑在操作菜单中重载按钮,但我没有找到如何做到这一点。

0 投票
1 回答
51 浏览

ios - 如何从我的 iOS 应用程序安全地打开 URL 上的文档?

我需要在我的 iOS 应用程序的某个 URL 上打开一个文档(可以是 pdf、doc、html 或其他格式)。最困难的是对 URL 的访问必须经过身份验证,所以我不能只在 Safari 中打开它。我也不能在本地存储未加密的文件,因为越狱设备上可能存在未经授权的访问(这是客户要求)。因此,我也无法使用 UIDocumentInteractionController 共享文件或使用 QLPreviewController 打开它们。还有其他选择吗?

0 投票
1 回答
67 浏览

ios - 快速检查是否包含视频内容的 zip 文件

我必须使用 Document Interaction Controller 预览 zip 文件,但不应预览包含视频内容的 zip 文件。有没有办法使用 swift 检查包含视频内容的 zip 文件?

0 投票
1 回答
304 浏览

ios - UIDocumentInteractionController:无法使用/保存文件

在我的应用程序中,我显示了一些远程图像或 PDF 文件,并希望让用户能够下载它们。为此,我尝试先将它们保存在本地,.documentDirectory然后再打开 aUIDocumentInteractionController来处理文件。

但是,我遇到了一个问题,即使操作表打开得很好并提出了所有预期的选项,最后我也永远无法使用该文件,因为出现了错误。具体来说:

  • 如果我尝试在邮件中使用该文件,邮件会打开但为空,
  • 如果我尝试在 Whatsapp 中使用它,我会收到一条错误消息“无法共享该项目。请选择其他项目。”
  • 如果我选择“保存到文件”,文件操作表会短暂打开,但随后会立即关闭,并在控制台中显示错误消息:[ShareSheet] cancelled request - error: The operation couldn’t be completed. Invalid argument

这是我用来缓存远程文件的代码,然后用以下命令打开它UIDocumentInteractionController

谢谢您的帮助

0 投票
0 回答
99 浏览

ios - Mac Catalyst:共享表无法正常工作

我正在使用 Mac Catalyst 将 iPad 应用程序“移植”到 MacOS,但无法让文档共享表正常工作。

我尝试了两种方法,它们都导致相同的结果:没有共享表,但只有一个小的“更多...”按钮(见图)。

更多按钮,而不是共享表

尝试 #1:使用 UIDocumentInteractionController...

尝试#2:使用 UIActivityViewController...

由于这两种机制始终给出相同的结果(并且都在 iOS 上工作),我觉得我需要设置某种权限或权利才能让它在 MacOS 上工作。但我找不到任何提示或文档来支持这一点。

0 投票
1 回答
428 浏览

ios - 与 UIDocumentInteractionController 共享文档

我正在尝试使用UIDocumentInteractionController. 本质上,我正在使用以下代码:

运行时,此代码显示共享操作表。日志表明存在一些问题:Could not instantiate class NSURL. Error: Error Domain=NSCocoaErrorDomain Code=4864 "The URL archive of type “public.url” contains invalid data." UserInfo={NSDebugDescription=The URL archive of type “public.url” contains invalid data. 选择任何选项都会导致处理文档失败。

这被简化为几乎教科书级别的代码,但它不起作用。我错过了什么?

更新: 添加了更好地强调问题原因的上下文(请参阅下面的答案)。

0 投票
0 回答
18 浏览

swift - 大于 iOS 13 的 UIDocumentInteractionController 和 Instagram

目前与 Instagram 和集成存在问题。UIDocumentInteractionController 不显示任何带有 instagram 的图标,并且无法直接在 Instagram 上发布内容。

0 投票
1 回答
81 浏览

c# - Xamarin iOS 将图像发布到 Instagram

目标:使用 iOS 原生方法,用 C# 将用户制作的图片推送到他们的 Instagram 提要上。

据我所知,我必须这样做的方法是将我的图像保存到设备并为此获取本地标识符。我是根据我看到的 Objective-C 代码片段构建的。共享照片仅适用于安装了本机应用程序,正如我从我的试验中了解到的那样,让 facebook 模块工作。

编辑:使用 iOS Photos 命名空间中的 PHAssetChangeRequest 不起作用。一位同事向我指出了保存然后使用照片选择器获取本地标识符的 PHAsset 的可能性。但这是一个额外的步骤,我不希望应用程序的用户经历。最好只删除 Instagram 支持,因为我可以通过如下所示的通用共享方法。这种方法的缺点是用户必须选择要共享的媒体。

编辑 2 使用 UIDocumentInteractionController 尝试了一种不同的方式,但它没有显示任何内容并且没有发布,它没有抛出任何异常来给我任何关于我做错了什么的线索。

编辑 3 使用

我能够显示可能的共享选项。我使用本机应用程序登录到 Instagram,但帖子没有显示。