为ActivityViewController提供的未知活动项

时间:2015-01-22 12:49:31

标签: ios swift

我正在尝试使用UIActivityViewController从我的应用分享视频。以下是我使用的代码:

var url = NSURL(string: path!)!
var activityViewController = UIActivityViewController(activityItems: [url], applicationActivities: nil)

self.presentViewController(activityViewController, animated: true, completion: { () -> Void in })

路径指向有效的.mov文件,因此没有问题。当我呈现活动视图控制器时,我收到错误:提供的未知活动项,其中包含.mov文件的路径,共享选项仅显示AirDrop。

该应用在iOS 8上运行。

有什么想法吗?

编辑我发现当我将视频保存到相机胶卷时。用户可以将照片应用程序与任何应用程序共享。所以我猜这个视频格式并没有错。

3 个答案:

答案 0 :(得分:1)

如果电影位于资源包中,则应使用init?(fileURLWithPath path: String, isDirectory isDir: Bool)

如果您使用imagePicker控制器选择视频,您可以使用键UIImagePickerControllerMediaURL从信息词典中获取网址,相应的委托方法为didFinishPickingMediaWithInfo

答案 1 :(得分:0)

试试这个:

var activityViewController = UIActivityViewController(activityItems: [path], applicationActivities: nil)
self.presentViewController(activityViewController, animated: true, completion: { () -> Void in })

答案 2 :(得分:0)

我对zip文件有类似的问题,并意识到我传递的url路径是相对的而不是绝对路径。换句话说,UIActivityViewController URL需要前缀file:///

我使用的是相对路径,因为第三方库Objective-Zip需要一个相对路径来创建zip文件。

<强>使用: file:///私人的/ var /移动/容器/数据/应用/ 63284C22-6E22-4865-965C-3B67F58D0659 / TMP / myfile.zip

不起作用 /private/var/mobile/Containers/Data/Application/63284C22-6E22-4865-965C-3B67F58D0659/tmp/myfile.zip