2

我正在尝试与 AirDrop 共享文本(或 URL)和图像,它似乎只发送图像。它适用于其他共享活动(Facebook、Twitter、邮件、消息等)。是否可以通过 AirDrop 共享两个项目?这是我使用 UIActivityViewController 的方法:

 UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self.activityItem, self.attachedImage] applicationActivities:nil];

self.attachedImage 是一个 UIImage 和 self.activityItem 是 UIActivityItemProvider 的子类,它在委托方法中为不同的活动类型返回不同的文本

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType

有人有想法吗?谢谢!

编辑:

我也尝试过不继承 UIActivityItemProvider 并直接传递一些文本。没用。

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"some text", self.attachedImage] applicationActivities:nil];

请注意,如果我想共享多个文本或多个图像(UIImage),它可以工作:

    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"text 1", @"text 2"] applicationActivities:nil];

    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[attachedImage1, attachedImage2] applicationActivities:nil];
4

2 回答 2

1

在 Apple 开发论坛上发布了相同的问题:https ://devforums.apple.com/message/937697#937697

得到了这个答案:

目前不可能。AirDrop 只允许您发送单件物品集。如果您尝试将其发送到另一端您自己的应用程序的实例,则可以改为创建文件格式(此处可能适合使用包/包)并将所有不同类型的文件嵌入文件中。然后在接收方,您可以从文件中提取不同的类型。

于 2014-01-30T09:03:51.317 回答
1

试试这个代码

NSString *text= @"text to share";
CustomActivityItemProvider *textToShare = [[CustomActivityItemProvider alloc]
                                           initWithStandardText:text];

NSArray *activityItems = @[textToShare,self.attachedImage];

activityItems在活动视图控制器中使用数组。

于 2014-01-22T10:38:51.480 回答