问题标签 [uiactivityitemprovider]

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

ios - Xcode 8 beta 6 UIActivityItemProvider 错误与@objc 兼容性

尝试在 Xcode 8 beta 6 中实现 UIActivityItemProvider。在将此方法从 String 参数更改为 UIActivityType 后,现在出现此错误:

Method 不能是 @objc 覆盖,因为参数 2 的类型不能在 Objective-C 中表示。

这是一个错误吗?有解决方法吗?

这是我们的代码

}

0 投票
1 回答
1385 浏览

ios - 使用 UIActivityViewController 添加到 iCloud Drive

我想使用此处所示的 UIActivityViewController 的“添加到 iCloud Drive”操作来上传我存储在 iOS 设备上的文件:

在此处输入图像描述

目前在我的自定义 UIActivityItemProvider 类中,我的 - (id)item 方法返回了这个:[NSURL fileURLWithPath:fullPath];

FullPath 是我正在创建并希望上传到 iCloud 驱动器的文件的路径。当我单击“添加到笔记”、邮件活动或我的自定义活动时它可以工作,但它不适用于 iCloud 驱动器。它不使用此文件,而是创建一个默认文件,其主题是我用于电子邮件活动的“附件是一个文件”。作为文件内容。这是我用来展示 UIActivityViewController 的代码:

0 投票
1 回答
655 浏览

ios - 取消打印活动后应用程序崩溃

我的应用程序支持打印。如果用户取消打印机选项模式视图控制器,应用程序会在 Apple 代码中的某处崩溃,并显示以下消息_WebTryThreadLock(bool) ... Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...

我已将其缩小到以下代码:

如果我itemProvideractivityItems数组中删除,崩溃就会消失。在我的应用程序中,我有一个自定义子类UIActivityItemProvider,但即使我使用超类而不对其进行自定义,我也会遇到此崩溃。

要进行复制,请创建一个带有单个按钮的单视图项目,并将该按钮链接到一个使用上述代码片段作为其主体的操作。然后点击按钮,点击活动视图控制器中的打印图标,然后点击打印机选项视图控制器中的取消按钮。碰撞。有任何想法吗?

0 投票
0 回答
407 浏览

ios - SDWebImageDownloader 返回零值

SDWebImageDownloader 返回 nil 而不是 SDWebImageOperation 对象。下面的一些代码。

originalLoadingOperation 始终为“零”。

0 投票
1 回答
596 浏览

ios - iOS 自定义附件无法直接从消息中打开

几乎有一个自定义文件 UTI 附件作为消息共享时在我的应用程序中工作。它将文件作为附件嵌入消息中,并在消息中使用正确的文件类型“kitlist”,并在 iPad 和 iPhone 上接收。如果您从正常消息显示中点击附件,则不会发生任何事情。但是,如果您点击右上角的信息按钮,然后选择附件,点击文件并共享此文件,则该应用程序将显示为可能的目的地。选择它将在我的应用程序中成功打开文件。目前,选择“邮件”作为共享目的地不会导致附件出现在电子邮件消息中;我不知道这是否相关。我也尝试使用子类化 UIActivityItemProvider 而不是实现协议 UIActivityItemSource 子类化 NSObject 但没有区别。空投到另一台 iOS 设备可以正常工作。

这是我的 plist 的相关片段:

制作附件的代码是:

0 投票
1 回答
288 浏览

objective-c - 如何使用 UIActivityItemProvider 添加多个电子邮件附件

我正在开发一个 iOS 应用程序,我想在其中使用 UIActivityItemProvider 将多个附件添加到电子邮件中。我想使用 UIActivityItemProvider 来做到这一点,因为我不想在向用户显示 UIActivtyViewController 之前产生处理记录的开销。如果我使用 NSData 或 NSURL 对象将一个图像传递给返回对象的“url”元素,则内联图像显示正常。如果我传入这些对象的数组,那么什么都不会出现。我相信,如果我在初始化 NSActivityViewController 时使用 ActivityItems 参数,传递一个数组会起作用,但同样,我不想这样做,因为我想利用通过使用 UIActivityItemProvider 提供的延迟处理。下面是我的代码

0 投票
2 回答
3070 浏览

ios - 使用 `UIActivityItemSource` 协议无法分享到 Instagram

我使用UIActivityViewController. 图像来自activityImage哪个UIImage(). 自定义文本是从协议activityText()返回的UIActivityItemSource

问题是,Instagram 仅UIActivityViewController在特定条件下可见。

总结以下测试:

  • Instagram仅在UIActivityViewControllerforactivityItems: [activityImage]activityItems: [activityImage, NSNull()]

  • 即使返回的协议值为, , ,Instagram也会被隐藏activityItems: [activityImage, activityText()]UIActivityItemSource""nilNSNull()

问题是UIActivityItemSource需要调用协议,以便可以分别管理不同的共享平台。


问题:

  • UIActivityItemSource调用协议时如何分享到 Instagram ?

  • 有什么替代方法"",我可以在调用协议时尝试?nilNSNull()UIActivityItemSource


代码:


测试:

Instagram在_UIActivityViewController

或者

Instagram隐藏UIActivityViewController

或者

或者

或者

或者

0 投票
1 回答
614 浏览

ios - IOS/Objective-C: UIActivityItemSource 协议,用于自定义与 UIActivityViewController 共享消息

Apple Docs 说您可以使用该协议来自定义与代替对象UIActivityItemSource共享的消息:UIActivityViewControllerUIActivityItemProvider

UIActivityItemSource

在您想要从应用程序的现有对象之一提供数据而不是创建单独的 UIActivityItemProvider 对象的情况下,您可以使用此协议。

我已经采用了这个协议,但是,像下面这样的委托方法似乎没有被触发。谁能确认这应该有效,如果可以,请指出我可能缺少的东西?在此先感谢您的任何建议。

0 投票
1 回答
1256 浏览

swift - UIActivityViewController“保存到文件”只需要1个文件时保存多个文件

我的应用程序能够提供多种 UIActivityItem 类型(文本、数据、富文本、打印页面渲染器等)用于各种用途的共享,包括打印、复制/粘贴和另存为文件。出于复制/粘贴的目的,它需要包含纯文本、属性字符串、数据(JSON 数据)和 JSON 字符串)。

但是,由于提供了多种数据类型,UIActivityViewController 的“保存到文件”选项会导致保存多个文件 - 一个用于可以保存为文件的每种项目类型。

如果我将它减少到只有一个 UIActivityItem,那么复制/粘贴功能会严重减少,因此它不能与它应该使用的所有各种不同的粘贴板类型一起工作(例如,我的应用程序的自定义 JSON 数据格式以及纯文本和属性字符串) .

所以我试图使用 UIActivityItemProvider 子类来解决这个问题,但我仍然无法弄清楚如何只保存一个文件,而不是多个文件(每个项目类型一个)。这甚至可能吗?

我的 UIActivityItemProvider 子类的相关部分如下。

(请注意,我为此使用了单个子类的多个实例,但使用不同的子类也会出现同样的问题。)

当我运行它并选择“保存到文件”时,我得到以下输出(来自每个提供者的一行):

...如果我简单地传回该数据类型的项目,则会为其中的每一个创建一个文件。

0 投票
0 回答
223 浏览

ios - iOS - Swift - 使用 Apple 邮件附件中的 UIPasteboard 粘贴文件(pdf、docx)时出现问题

我正在开发一个允许用户将文件(例如 .pdf 和 .docx)粘贴到应用程序中的应用程序。我让它运行良好,除了通过长按本机邮件应用程序中的附件复制文件时。

我知道文件不是问题,因为如果我在同一封电子邮件中长按相同的附件,而不是选择“复制”,而是选择“共享”,然后从共享表中选择“复制”,我可以粘贴文件成功。

粘贴时,我使用UIPasteboard.general.itemProviders.first. 在上述两种情况下, 中只有 1 项UIPasteboard.general.itemProviders,但是打印出UIPasteboard.general.itemProviders[0]我看到以下内容的描述:

对于 PDF 文件:直接从长按复制时(失败场景):

从长按复制时,然后点击“共享”,然后点击“复制”(成功的场景)来自同一电子邮件的同一 PDF 文件:

对于 docx 文件:直接从长按复制时(失败场景):

从长按复制时,然后点击“共享”,然后点击“复制”(成功的场景)来自同一电子邮件的同一 docx 文件:

我遇到的两个需要帮助的问题是:

  1. UIPasteboard.general.itemProviders.first?.suggestedName为 PDF 返回错误的文件名,但在成功的情况下,相同的代码返回正确的文件名。

  2. 在处理 docx 文件时,self.data(forPasteboardType: "org.openxmlformats.wordprocessingml.document")UIPasteboard 扩展中的数据在两种情况下是不同的(打印出的数据显示字节数不同),并且失败的情况无法使用 QLPreviewItem 打开该文件,但它可以成功设想。

显然,在处理导致这些问题的邮件附件(以及可能的其他情况)时,我遗漏了一些东西,但我不确定是什么。任何帮助将不胜感激!!!