2

我的应用程序允许将带有或不带有图像和音频的文本文件通过电子邮件发送给其他用户。当没有图像或音频时,应用程序会“按原样”发送带有自定义扩展名(例如 text.xxx)的文本文件。当有音频和图像时,应用程序会将文本文件与图像和音频一起压缩到一个名为 text.xxx.zip 的文件中。

在 iOS 6 之前,这工作得很好。在 iOS 6 之前,应用程序被赋予了 text.xxx.zip 文件的 URL。现在,在 iOS 6 中,该文件似乎已被 Mail 解压缩,并且只有 text.xxx 被发送到 openURL 处理程序。

有没有人有这方面的经验?对更好方法的建议?我想我需要为拉链箱想出一个独特的扩展......

4

1 回答 1

1

因此,在过去 24 小时左右我对此进行了猛烈抨击之后,这就是“解决”问题的方法:

1) 将任何现有的附件文件名从 test.xxx.zip 更改为 test.zip。看起来 iOS6 Mail 假设任何形式的文件名.xxx.zip 都只是文件名.xxx 的压缩版本。(也许这是某个地方的标准?)还指出,如果我将文件名更改为 test.yyy.zip,它会说它无法打开附件。(大概是因为没有人注册“.yyy”扩展名)。

2) 重写代码,以后不再使用 .zip 扩展名,以防止出现类似问题。

我还发现,对于多种文档类型(例如,.xxx、.zzz),您必须在 UTI 声明中为每种类型指定不同的 mime 类型 - 否则 Mail 会将它找到的第一个 UTI 扩展附加到对象,然后调用 openURL。因此,换句话说,如果您设置为处理平面文件 (.xxx) 和 zip 文件 (.zzz),但您使用相同的 mime 类型(例如 application/myappname)并且首先定义“xxx” ,当为您的文件“test.zzz”调用 openURL 时,它实际上会将其作为“test.xxx”传递给 openURL。

于 2012-11-15T14:59:43.483 回答