我正在尝试使用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];
}
}
答案 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];
}
希望这会有所帮助。