gpt4 book ai didi

iphone - 向 ShareKit 添加打印选项

转载 作者:行者123 更新时间:2023-12-03 20:53:10 28 4
gpt4 key购买 nike

我计划在我的应用程序中使用 ShareKit。我也想打印(AirPrint)。我想在同一个操作表中包含所有选项(Facebook 和 Twitter 和打印机)。
有什么理由我不应该这样做吗?
我一直在寻找有关如何实现这一目标的一些技巧,但一直空白。有一些提示可以从 ActionSheet 中删除内容但不添加它们。打印机选项不会被视为“共享”吗?

最佳答案

在“How to Add a New Action to ShareKit”中介绍了向 ShareKit 添加 Action 的过程。此描述假设您已经实现了核心 Sharekit 功能(例如,您已经实现了 ShareKit 示例程序)。

您将从 ShareKit 模板 Src 文件夹(.m 和 .h 文件)中复制新 Action 模板到您的项目中,使用适当的名称(如“SHKPrint.m/.h”)重命名文件。有一些明显的事情需要改变,比如类名和头文件导入文件。添加 #import "SHKSharer.h"到头文件。

将该类添加到 SHKSharers.plist 中的操作/服务列表中,如链接页面所述。 (在这一点上,我可以看到的操作和服务之间确实没有区别,据我所知,它们也可以组合在一起,没有问题。不过,一个区别是操作被假定为不需要身份验证。requiresAuthentication 是模板中的方法。)

之后,正如文档所说,熟悉 Understanding the share flow .
canShare 中的至少一个方法需要被覆盖,它们已经在模板中设置,供您修改和取消注释。我想象一下,为了您的目的,您可能希望将 canShareText 视为一种合适的共享方法,因此将其更改为返回 YES。然后,您将能够使用分配给 UISimpleTextPrintFormatter 或 UIMarkupTextPrintFormatter 的 printFormatter 进行打印(但不能不设置 UIPrintInteractionController)。 (我认为您没有提到要打印的内容,因此您必须即兴发挥。)

修改sharerTitle新共享者类中的方法,以显示适当的标题。

此时,您应该能够运行您的代码并查看操作表。您的打印操作不会出现在这张纸上,但如果您单击更多...按钮,它应该会出现在第二张纸上。

单击该操作,除了工作表将隐藏之外,什么都不会发生。现在您需要添加一些代码来进行打印。 (稍后您会看到,如果您再次选择共享,则新操作已添加到第一个操作表中,这是一个最近使用的列表。)

我提到假设您已经实现了核心 ShareKit 功能,例如 ShareKit 示例程序。如果您转到调用 sharekit 操作表的方法(在您自己的代码中,例如响应您按下共享按钮),您将看到一个位置,用于确定您想要共享的信息类型——例如,URL、图像、文本……这与您想将共享信息发送到何处无关——打印机、 Facebook 、推特……(我认为这将手推车放在了马之前,我已经修改了自己的实现以修复这个。)但是,暂时忽略这一点,您将希望设置如下:

- (void) shareButtonPressed {

SHKItem *item = [SHKItem text:yourSimpleTextOrMarkupText];

// Get the ShareKit action sheet
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];


// Display the action sheet
[actionSheet showInView:self.view];

}

这使轮子开始运动以共享项目对象中的任何内容。 item 对象包括一个 shareType,在本例中是 SHKShareTypeText,它是一个枚举类型。

我不会进入将其转换为共享结果的机制。我在睡梦中还不知道,可能会误导你(如果我还没有的话)。

当您单击操作表中的项目时,SHKActionSheet 类会执行一些魔术,将新操作类(在本例中为 SHKPrint)的字符串名称转换为一个类,并使用它来调用类方法来分配和初始化同一个类的实例。 (我在打字的时候这样做,所以我跳过了关于如何从“更多...”第二张纸中完成的步骤。我将留给读者去追踪它并看看它是如何工作的。)

共享是通过运行在 share 上的调用链完成的。 ,然后 show SHKSharer 类中的方法。 (有一些关于自动共享的业务我不会在这里讨论,但我认为你可以暂时忽略它。)这最终落在了 send 上。自定义类 (SHKPrint) 的方法。看看你的模板文件,它会给你一些关于做什么的指导。

有关打印的更多信息, see this link ,这似乎很好地说明了您可以做什么来打印。

我会在这里停下来有几个原因。我想我回答了您的问题,如何添加操作表。此外,我没有 AirPrint 功能可以在这里进行测试,所以我不能真正靠自己走得更远。

如果您有任何其他问题,请告诉我。

关于iphone - 向 ShareKit 添加打印选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313193/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com