我无法让UIActivityViewController附加使用UIDocument创建的自定义文件类型。有人能帮上忙吗?
即使文件地址有效,电子邮件也没有任何附件,它指向一个通过UIDocument的子类创建的带有.wki扩展名(我的自定义扩展名)的文件。
发送电子邮件的代码:
NSURL *url = self.entrySelected.fileURL;
NSArray *activityItems = @[url];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];文档类型和导出的UTI的Info-plist设置为:
<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>发布于 2014-01-08 21:48:41
我自己的文件类型也有同样的问题。经过大量的实验,我找到了一个解决方案,希望它也适用于你。
必须为文件指定MIME类型,例如:
...
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>wki</string>
<key>public.mime-type</key>
<string>application/x-wki</string>
</dict>
...发布于 2014-03-15 17:55:21
我最终通过设置另一个文档类型和UTExportedTypeDeclaration解决了我的问题。
我保留了第一个(假设应用程序管理层需要它),并为一个压缩文件设置了另一个文档类型,其中UTTypeConformsTo键被设置为“public.data”,并为public.mime.mime- type添加了一个附加键(设置为“applications/myappname”)。我将压缩文件发送到一个临时目录,并让UIActivityViewController从这个URL中提取该文件。
希望这对其他人有帮助!
https://stackoverflow.com/questions/14387096
复制相似问题