我无法让UIActivityViewController
附加使用UIDocument
创建的自定义文件类型。有人可以帮忙吗?
即使文件网址有效,该电子邮件也完全没有附件,并且指向通过.wki
的子类创建的扩展名为UIDocument
的文件(我的自定义扩展名)。< / p>
发送电子邮件的代码:
NSURL *url = self.entrySelected.fileURL;
NSArray *activityItems = @[url];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];
文档类型和导出的UTI的信息播放器设置为:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>MyApp Doc</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.stephencox.myApp.doc</string>
</array>
<key>LSTypeIsPackage</key>
<string>YES</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.apple.package</string>
</array>
<key>UTTypeDescription</key>
<string>MyApp Doc</string>
<key>UTTypeIdentifier</key>
<string>com.stephencox.myApp.doc</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wki</string>
</array>
</dict>
</dict>
</array>
答案 0 :(得分:0)
我的自己的文件类型遇到了同样的问题。经过大量的实验,我找到了解决方案,希望它也适合你。
您必须指定文件的MIME类型,例如:
...
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>wki</string>
<key>public.mime-type</key>
<string>application/x-wki</string>
</dict>
...
答案 1 :(得分:0)
我最终通过设置另一种文档类型和UTExportedTypeDeclaration解决了我的问题。
我独自离开了第一个(假设UIDocument管理需要它),并为压缩文件设置另一个doc类型,其中UTTypeConformsTo键设置为“public.data”,并为公共添加了另一个键。 mime-type(设置为“applications / myappname”)。我将压缩文件发送到临时目录,并让UIActivityViewController从此URL中获取文件。
希望这有助于其他人!