我已经UIActivityViewController
在我的应用程序中实现了,并且可以成功共享字符串和图像。但是,我注意到当您在 iOS 照片应用程序中共享图像时,有些服务没有出现在我的应用程序中。即打印、用作墙纸、分配给联系人和照片流。我的应用程序能够很好地使用邮件、消息、Facebook、Twitter 和复制。
我在想:
1.) 这些额外服务已在照片应用程序中使用UIActivityItemProvider
、UIActivityItemSource
等作为自定义服务实现。
2.) 我提供的数据格式不正确,无法与这些服务一起使用。
我已经阅读了几次文档,但似乎没有看到任何关于它的内容。
编辑:按要求显示代码:
#define SM_SHARE_IMAGE_AND_STRING 1
-(void)actionToolbarViewControllerUserTappedShareButton:(SMActionToolbarViewController*)sender{
// Reposition anchor view for UIPopoverController to point at
[self repositionAnchorViewToButtonFrame:self.actionToolbarViewController.shareButtonFrame];
// Asynch download of image
[SMUtility downloadAsset:self.selectedAsset completion:^(UIImage *image) {
// Create image source
SMActivitySource *activityImageSource = [[SMActivitySource alloc]initWithImage:image];
#if defined(SM_SHARE_IMAGE_AND_STRING)
// Create string source
NSString *assetsString = [SMUtility assetsString:[NSArray arrayWithObject:self.selectedAsset]];
SMActivitySource *activityStringSource = [[SMActivitySource alloc]initWithString:assetsString];
// Present UIActiviyViewController within an UIPopoverController
NSArray *items = [@[activityImageSource, activityStringSource]mutableCopy];
#else
NSArray *items = [@[activityImageSource]mutableCopy];
#endif
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];
[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
[SMMixPanel eventSharePhotoMethod:@"Share"];
}];
self.buttonPopoverController = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
[self.buttonPopoverController presentPopoverFromRect:self.anchorView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}];
}