首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UIActivityViewController自定义文件类型

使用UIActivityViewController自定义文件类型
EN

Stack Overflow用户
提问于 2013-01-18 03:58:04
回答 2查看 1.9K关注 0票数 3

我无法让UIActivityViewController附加使用UIDocument创建的自定义文件类型。有人能帮上忙吗?

即使文件地址有效,电子邮件也没有任何附件,它指向一个通过UIDocument的子类创建的带有.wki扩展名(我的自定义扩展名)的文件。

发送电子邮件的代码:

代码语言:javascript
复制
    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设置为:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2014-01-08 21:48:41

我自己的文件类型也有同样的问题。经过大量的实验,我找到了一个解决方案,希望它也适用于你。

必须为文件指定MIME类型,例如:

代码语言:javascript
复制
...
    <key>UTTypeTagSpecification</key>
    <dict>
        <key>public.filename-extension</key>
        <string>wki</string>
        <key>public.mime-type</key>
        <string>application/x-wki</string>
    </dict>
...
票数 0
EN

Stack Overflow用户

发布于 2014-03-15 17:55:21

我最终通过设置另一个文档类型和UTExportedTypeDeclaration解决了我的问题。

我保留了第一个(假设应用程序管理层需要它),并为一个压缩文件设置了另一个文档类型,其中UTTypeConformsTo键被设置为“public.data”,并为public.mime.mime- type添加了一个附加键(设置为“applications/myappname”)。我将压缩文件发送到一个临时目录,并让UIActivityViewController从这个URL中提取该文件。

希望这对其他人有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14387096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档