2014-03-07 156 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]; 
    } 

希望這有助於。