1

我向我的应用程序添加了一个activityViewController,如下所示,传入一个图像

UIActivityViewController *avc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
        [self presentModalViewController:avc animated:YES];
        [avc release];

在模拟器上(推特、脸书和微博账号都没有配置):

选项邮件、推特、脸书、微博、分配给联系人、保存到相机胶卷、打印和复制默认显示。

但在设备上:

在我的应用程序中:twitter、facebook 和 weibo 仅显示帐户是否已配置。

在 safari 中:无论是否配置了帐户,都可以使用 twitter、facebook 和 weibo 选项。

我期望我的应用程序中的行为与 safari 相同。我错过了一个特定的步骤吗?

4

2 回答 2

2

好的,我已经找到了问题所在。

UIActivityViewController 中显示的选项完全取决于要共享的项目的类型。例如,如果有视频,则不会显示 Facebook 或 twitter 选项。但如果是图片和标题,肯定会显示相关选项。

以下将显示邮件、推特、Facebook、assignToContact、保存到相机胶卷、打印、复制等应用程序

// Create the content
NSString *message = @"The Upcoming App Scribble Talk";
UIImage *imageToShare = [UIImage imageNamed:@"createbtn.png"];

NSArray *objectsToShare = [NSArray arrayWithObjects:message, image, nil];

但是,以下应仅提供相机胶卷、邮件或副本。

NSString *message = @"The Upcoming App Scribble Talk";
NSString *videoToShare = @"myFirsScribble.mov";
NSURL *videoPath = [NSURL fileURLWithPath:videoToShare];

NSArray *objectsToShare = [NSArray arrayWithObjects:message, videoPath, nil];
于 2013-11-26T08:10:38.773 回答
0

我认为您只想在 UIActivityViewController 中显示某些特定服务。您可以将调用的一个属性excludedActivityTypes定义如下,以避免某些默认活动。

UIActivityViewController *yourvc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
yourvc.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeMail,UIActivityTypeCopyToPasteboard];//Try this code in simulator.. you can only see FB & Twitter.  
        [self presentModalViewController:yourvc animated:YES];
        [avc release];

同样,您可以从默认 UIActivityViewController 中排除..

于 2013-04-04T09:33:59.623 回答