2014-03-07 113 views
1

我想使用UIActivityViewController共享我的应用程序文档(文件url)。当activityviewcontroller弹出(在iPad设备上测试)时,我只获得iMessage和Mail选项。我没有获得Facebook,Twitter,复制,打印等其他选项。为什么?请帮帮我。我需要Facebook,Twitter的选项。我使用NSURL共享的文件类型是.txt使用UIActivityViewController发布发布文件url

注意:我已经登录到我在iOS设置中的Facebook,Twitter帐户。

我使用的

源代码:

NSURL * URL = [NSURL fileURLWithPath:self.path];

NSArray *objectsToShare = @[url]; 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 


if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 

    [APP_VIEW_CONTROLLER presentViewController:activityViewController animated:YES completion:nil]; 
} 
else 
{ 

    if (![self.activityPopover isPopoverVisible]) { 
     self.activityPopover = [[UIPopoverController alloc] initWithContentViewController:activityViewController]; 
     [self.activityPopover presentPopoverFromRect:pathViewController.pathViewWrapper.pathView.bounds inView:pathViewController.pathViewWrapper.pathView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
    } 
    else 
    { 
     //Dismiss if the button is tapped while pop over is visible 
     [self.activityPopover dismissPopoverAnimated:YES]; 
    } 
} 

回答

0

在UIActivityViewController中显示的确是神秘的。关于Facebook和Twitter 1)它可能需要是http或https URL(而不是文件URL),2)确保这些服务是在您正在使用的模拟器或iOS设备上配置的。

0

用于发布到Facebook。该文件可以是本地存储在设备上的文件。但是,它需要转换为MP4。默认情况下,设备相机拍摄的视频为.MOV文件。如果您提供本地文件位置,则转换为.MP4​​后,UIActivityController将共享至Facebook。

我得到了FB的工作,我现在在Twitter上工作。我会编辑我的答案,并在完成后提供详细信息。

下面是一些代码:

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:activities]; 

    activityController.excludedActivityTypes = @[ UIActivityTypeMail, 
                UIActivityTypeAssignToContact, 
                UIActivityTypePrint, 
                UIActivityTypeCopyToPasteboard, 
                UIActivityTypeAddToReadingList, 
                UIActivityTypeSaveToCameraRoll]; 

NSMutableArray *items = [[[Engine sharedEngine].thingsManager getSharingMessageForThingWithId:self.thingId 
                      categoryName:self.category.name 
                       brandName:self.brand.name 
                       andText:message 
                       isVideo:([self.videoURL.absoluteString length] > 0 ? YES : NO)] mutableCopy]; 
    if ([self.videoURL.absoluteString length] > 0) { 
    //Get the .mp4 converted video url 
    if (self.awsManager == nil) { 
     self.awsManager = [[AWSManager alloc] init]; 
    } 
    NSURL *mp4Url = [self.awsManager convertVideoToMP4:self.videoURL]; 
    //[items addObject:self.videoAmazonPath]; 
    [items addObject:mp4Url]; 
    } else { 
    [items addObject:self.image]; 
    } 

希望这有助于。