标签: uiactivityviewcontroller

UIActivityViewController中的"Open in"功能

我需要你的帮助UIActivityViewController.我需要为文件提供活动控制器,除了默认操作,用户将能够在其他应用程序中打开该文件.我知道如何使用UIDocumentController,它显示popover所有应用程序能够打开文件.但是,我如何才能展示所有这些应用程序UIActivityViewController

PS此行为可以在Apple Mail应用程序中看到,例如.

iphone ios uiactivityviewcontroller

6
推荐指数
1
解决办法
3496
查看次数

在iOS 8上将视频分享到Facebook

我有一些适用于iOS 7的共享代码,但从iOS 8开始,不再有效.

@IBAction func onShareButton(sender: UIButton) {
    let movie = NSBundle.mainBundle().URLForResource("IMG_0564", withExtension: "mp4")!
    let items = [movie]
    let activity = UIActivityViewController(activityItems: items, applicationActivities: nil)
    if activity.respondsToSelector("popoverPresentationController") {
        activity.popoverPresentationController?.sourceView = sender
    }
    self.presentViewController(activity, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

正如我所说,这在iOS 7中运行良好,但是从iOS 8开始,当我选择分享到Facebook时,视频剪辑不再附加到帖子(或在共享面板中可见).所有其他选项工作,邮件,保存到视频,AirDrop等都似乎工作正常.

我也尝试将这些项目作为AVAssets传递:

    let items = [movie].map { AVAsset.assetWithURL($0) }
Run Code Online (Sandbox Code Playgroud)

和NSData:

    let items = [movie].map { NSData(contentsOfURL: $0) }
Run Code Online (Sandbox Code Playgroud)

这两者都没有对这个问题产生任何影响.

如果我在Objective-C中使用道德等价物,那么问题也会发生,它与语言无关.

facebook ios uiactivityviewcontroller ios8

6
推荐指数
1
解决办法
1752
查看次数

UIActivityViewController - 邮件活动 - 如何设置电子邮件收件人和主题?

可能重复:
如何在iOS 6中为UIActivityViewController设置收件人?

无论如何在使用时设置邮件主题和/或电子邮件收件人UIActivityViewController

我能够成功发送消息,但无法弄清楚如何设置主题或设置邮件收件人.

email objective-c ipad ios6 uiactivityviewcontroller

5
推荐指数
0
解决办法
1696
查看次数

iOS 6共享像Messages,而不像Photos(UIActivityViewController和UIDocumentInteractionController)

在iOS 6中,点击Photos应用程序中的操作按钮会显示标准的UIActivityViewController:

来自Photos的UIActivityViewController

从Messages中执行相同操作会提供一组不同的选项.这看起来像是在使用UIDocumentInteractionController api来拉取所有可以处理图像的应用程序.

UIAcitivtyViewController? 来自消息

我的问题是双重的:

  1. 如何进入"消息"操作菜单?Tumblr和Halftone,仅举几例,已经做到了......我似乎无法找到文档.

  2. 如何显示消息样式的操作菜单?当我呈现一个UIActivityViewController它没有那些选项...只是标准设置facebook/twitter/copy/print/save to camera roll/etc.

谢谢!

sharing ios uidocumentinteraction uidocument uiactivityviewcontroller

5
推荐指数
1
解决办法
2602
查看次数

UIActivityController在Facebook上发布

UIActivityController在我的项目中添加了.看起来这个特定主题的帮助很少.我面临的问题是链接在Facebook上以奇怪的方式分享,而不是通常在Facebook上共享的方式.为了更有意义,照片和链接都在iOS Photos文件夹中,没有任何选项可以更改它.

下面是它们目前如何在Facebook上共享的示例图像:

在此输入图像描述

它们通常如何在Facebook上共享以及我想要的内容:

在此输入图像描述

这是我用来在我的项目中添加UIActivityController的代码:

UIActivityViewController *objVC = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:titleString, [NSURL URLWithString:urlString], imageTaker, nil] applicationActivities:nil];


[self presentViewController:objVC animated:YES completion:nil];
[objVC setCompletionHandler:^(NSString *activityType, BOOL completed)
 {
     NSLog(@"Activity = %@",activityType);
     NSLog(@"Completed Status = %d",completed);

     if (completed)
     {
         UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Posting was success" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
         [objalert show];
         objalert = nil;
     }else
     {
         UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Posting was not successful" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
         [objalert show];
         objalert = nil;
     }
 }];
Run Code Online (Sandbox Code Playgroud)

除此之外,我还在控制台中收到一些警告,如下:

Registering unknown app identifier …
Run Code Online (Sandbox Code Playgroud)

iphone facebook objective-c ios uiactivityviewcontroller

5
推荐指数
1
解决办法
2469
查看次数

UIActivityViewControlloer不显示链接的缩略图

我正在开发一个iOS应用程序,它使用UIActivityViewController来共享一些文本和一个URL.在Facebook和Twitter服务中,它显示了位于URL的站点的缩略图.

不幸的是,有问题的网站在缩略图中看起来并不是很好.因此,目前缩略图在共享对话框中具有负值.我想要阻止缩略图显示,或者为缩略图提供我自己的图像.这样做的最佳方法是什么?

我想避免创建自己的服务和/或对话框.

我已经尝试将图像添加到项目列表中,但是这会添加一些我不想要的服务,并将图像添加到电子邮件操作中,并将图像添加到Facebook上的相册中.我可以通过将我不想要的黑名单行动解决的第一个问题.我可以制作自己的UIActivityItemProvider来阻止电子邮件问题.但是,我不知道如何防止Facebook问题.(请参阅如何在发布到Facebook和Twitter时自定义UIActivityViewController以显示URL链接?).

这是facebook分享对话框的屏幕截图: 在此输入图像描述

facebook objective-c ipad ios uiactivityviewcontroller

5
推荐指数
0
解决办法
627
查看次数

iOS 7 UIActivityViewController电子邮件附件

我在这里回顾了一堆帖子,大量的在线教程/示例代码,我很难过.在我的应用程序中,我显示iOS7本身提供的UIActivityController没有问题,其中包含适合我的应用程序的共享选项(AirDrop和邮件).

我遇到的具体问题是当用户选择通过邮件共享选项时,将保存的文档附加到电子邮件中.消息正文正在设置为文本,但附件是MIA.相关代码是:

//生成要为当前显示的记录共享的XML文件... NSURL*url = [self createShareFile];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Data shared from my app.", url] applicationActivities:nil];

// Filter out the sharing methods we're not interested in....
controller.excludedActivityTypes = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];

// Now display the sharing view controller.
[self presentViewController:controller animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我的文件正确创建,内容正确,NSURL对象包含文件的正确路径.

谢谢!

email attachment uiactivityviewcontroller ios7 airdrop

5
推荐指数
1
解决办法
3241
查看次数

在iOS7.1中共享时取消UIActivityViewController

我正在使用a UIActivityViewController来共享视频文件.视频文件在使用之前共享之前生成UIActivityItemProvider.

由于文件生成和共享可能需要一段时间才能播放更长的视频,因此用户可以取消共享操作非常重要.

这一切在iOS7.0中都没有问题.用户可以随时点击取消按钮UIActivityViewController,共享操作被取消.

在iOS7.1.1上测试相同功能时,在执行共享操作时点击取消按钮不再有效.就像主线程被阻塞一样,但所有共享代码都在后台线程上执行.

我在这里缺少什么,或者iOS7.1中是否存在已知问题/变化?(我在发行说明中找不到任何内容)

UPDATE

感谢所有的评论.

进一步调试似乎表明可能存在线程问题.我的UIActivityItemProvider'sitem方法使用信号量来创建基于块的异步导出方法defacto synchronous.因此也阻止它正在执行的线程.我认为这应该不是问题,因为该-(void)item方法的文档说:

在您的应用的辅助线程上调用此方法.

在iOS7.0下,UIActivityItemProvider's取消方法是从另一个线程调用而不是使用信号量的线程(正如文档所预期的那样),但是在iOS7.1下,是否可以从同一个(被阻塞的)线程调用它,导致它永远不会被执行?我无法测试这个,因为取消方法永远不会被执行,我不负责调用它.

有没有另一种方法可以强制我的导出方法同步执行而不会阻塞?基本上我的问题是UIActivityItemProvider'item方法有一个长时间运行的导出方法,但是`UIActivityItemProvider仍然需要能够在导出时接收取消调用.

objective-c sharing uikit ios uiactivityviewcontroller

5
推荐指数
0
解决办法
584
查看次数

自定义UIActivity:ios8中提供的未知活动项目

我为Instagram创建了一个自定义UIActivity.我自定义UIActivity所需的活动项目之一是InstagramPhoto实例.该对象包含UIImage,标题和我要发送到instagram应用程序的其他内容.ios低于8,一切正常.但是当我使用ios8测试时,我看到了这个错误:

Unknown activity items supplied: (
    "<InstagramPhoto: 0x18848310>"
)
Run Code Online (Sandbox Code Playgroud)

objective-c uiactivityindicatorview uiactivityviewcontroller xcode6 ios8

5
推荐指数
1
解决办法
1407
查看次数

UIActivityViewController:排除非Apple共享扩展?

我想阻止我的应用使用扩展机制将其内容分享给某些其他应用.例如,我希望用户能够共享链接,但不能使用Gmail应用.

我对这部纪录片的理解是:以下内容应该有效:

// vieController previously initialised like this: UIActivityViewController(activityItems: [provider], applicationActivities: nil)

viewController.excludedActivityTypes = ["com.google.Gmail.ShareExtension"]
Run Code Online (Sandbox Code Playgroud)

这不起作用.我错过了什么吗?非Apple活动类型是否不适用于此机制?

sharing ios uiactivityviewcontroller ios-extensions

5
推荐指数
1
解决办法
1008
查看次数