我已在我的应用中实施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];
}];
}
答案 0 :(得分:5)
UIActivityViewController
显示的标准活动。UIImage
。请参阅UIActivityTypeAssignToContact
的文档。有关其接受的详细信息,请参阅UIActivityTypePrint
的文档。“用作壁纸”似乎是仅在照片应用中显示的自定义活动。