【问题标题】:Issue posting file url using UIActivityViewController使用 UIActivityViewController 发布文件 url
【发布时间】:2014-04-10 17:14:52
【问题描述】:

我正在尝试使用 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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      用于发布到 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];
        }
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-06
        • 1970-01-01
        相关资源
        最近更新 更多