7

我使用以下代码通过 UIActivityViewController 共享图像、一些文本和 url。一切正常,除了当用户选择 AirDrop 时,它会得到“无法同时接收所有这些项目”。如果我只分享图像,那么 AirDrop 就可以了。我需要电子邮件、Facebook、Twitter 共享方法的文本和 url。

有没有办法保留文本和 URL,并使 AirDrop 仅共享图像,而 Facebook、电子邮件、twitter 共享方法继续使用文本和 URL 以及我要共享的图像?

NSString *text = [NSString stringWithFormat:@"I made this image using %@ iOS app. Here is the link to download it:", [CloudHelper appName]];
NSURL *url = [NSURL URLWithString:APP_URL];    

UIActivityViewController *activityController =
[[UIActivityViewController alloc]
 initWithActivityItems:@[text, url, myImage]
 applicationActivities:nil];

[self presentViewController:activityController animated:YES completion:nil];
4

1 回答 1

9

您想要创建并共享三个符合UIActivityItemSource的对象,其中一个返回字符串,一个返回图像,一个返回 URL。然后,当调用请求该项目的委托回调时,您检查选择了哪种活动类型(Facebook、Twitter、空投等),如果该项目不适用,则返回 nil。

所以在空投的情况下,只有图片的物品来源会返回一个非零值。你可以看一下空投示例代码来获取一些如何实现 UIActivityItemSource 的示例

于 2014-07-07T06:21:22.047 回答