为不同的共享操作提供不同的共享文本和网址,我创建了UIActivityItemProvider的子类。
只需返回
中的不同文字即可- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
但是,如果我们想要包含文字和网址,则不清楚。我们只是传回一个带有URL的字符串吗?
我看过一些人们传回字典的代码,比如电子邮件:
if ([activityType isEqualToString:UIActivityTypeMail]) {
return @{@"body":self.emailBody, @"url":self.filepath};
}
但是,Facebook,Twitter和SMS使用的正确键是什么?可能" url"对于链接,但它是" body"或"文字"或者文本部分是什么?
更新 所以现在,我将我的UIActivityItemProvider实例和NSURL传递给UIActivityViewController,如下所示:
[[UIActivityViewController alloc] initWithActivityItems:@ [customProvider,url] applicationActivities:nil];
这似乎有效。自定义提供程序提供文本,URL提供链接。不确定它是否与仅仅包含链接作为文本的一部分有所不同。