使用UIActivityViewController发布发布文件URL

时间:2014-03-07 13:57:52

标签: facebook twitter ios7 uiactivityviewcontroller

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

注意:我已经在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];
    }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我让FB上班,我现在正在推特上工作。我将编辑我的答案,并在完成后提供详细信息。

以下是一些代码:

  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];
  }

希望这会有所帮助。