使用UIActivityViewController发布发布文件url

问题描述 投票:0回答:2

我正在尝试使用 UIActivityViewController 共享我的应用程序文档(文件 url )。当 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];
    }
}
facebook twitter ios7 uiactivityviewcontroller
2个回答
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];
  }
© www.soinside.com 2019 - 2024. All rights reserved.