我使用以下代码使用UIActivityViewController共享图像,一些文本和网址。一切正常,但是当使用选择AirDrop时,它会得到一个"不能同时接收所有这些项目"。如果我只分享图像,那么AirDrop可以工作。我需要电子邮件,Facebook,Twitter共享方法的文本和网址。
有没有办法保留文字和网址,让AirDrop只分享图片,而Facebook,电子邮件,Twitter共享方法继续使用文字和网址以及我试图分享的图片?
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];
答案 0 :(得分:9)
您希望创建和共享符合UIActivityItemSource的三个对象,其中一个返回字符串,一个是图像,另一个是URL。然后,当调用请求该项目的委托回调时,您检查选择了哪种活动类型(Facebook,Twitter,空投等),如果该项目不适用,则返回nil。
因此,在空投的情况下,只有图像的项目源将返回非零值。您可以查看airdrop sample code以获取有关如何实现UIActivityItemSource的示例