在我的 Info.plist 文件中,我有这个:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>CSV Data</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.comma-separated-values-text</string>
</array>
</dict>
</array>
这主要是有效的。
当有人在 Windows 上使用 Excel 电子表格,将其保存为 CSV,然后通过电子邮件将其通过电子邮件发送到他们的 iPad 以导入我的应用程序时,就发生了这种螺旋事件。
邮件客户端给附件一个 MIME 类型的 application/vnd.ms-excel,这可能被认为是不正确的。我希望 MIME 类型实际上用于 Excel 格式的文件,而不仅仅是从 Excel 导出的任何文件。
在 iOS 邮件应用程序中,我长按附件以在其他应用程序中打开文件。这是错误的地方。
我的应用程序包含在可用应用程序列表中。我不确定是否将其称为正确或错误。该文件是 CSV 文件并具有 .csv 后缀,因此我很高兴我的应用程序被邀请参加聚会。但...
如果我然后单击我们的应用程序打开该文件,它“不起作用”,这意味着我的 AppDelegate 中的 OpenURL 方法永远不会被调用。
在这种情况下,两个错误确实使一个正确。如果我撒谎并将 com.microsoft.excel.xls 添加到 LSItemContentTypes,那么它“有效”,这意味着(1)我的应用程序仍然在“打开方式”对话框中列出,并且(2)iOS 实际上给了我文件,并且( 3)因为文件不是真正的 Excel 格式,而是 CSV,所以我的应用程序处理得很好。
但是现在该应用程序声称支持实际的 Excel 文件,但它并不支持。
这似乎是 iOS 中的一个错误。要么不要在对话框中列出我,要么实际上给我文件。
还是我做错了什么?