Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4
Posted
技术标签:
【中文标题】Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4【英文标题】:Open in... for custom file type works in iOS 5, 6 & 7 but not iOS 4 【发布时间】:2013-09-26 20:06:13 【问题描述】:我有一个应用程序声明了一个自定义文件类型(只是一些 XML),当 ios 在 iOS 5、6 和 7 上遇到这个文件时,它知道如何处理它 - 我的应用程序启动并导入文件很好。
但是在 iOS 4.3.3 上,自定义文件类型似乎只是被认为是纯文本 - 电子邮件客户端显示它,并且没有提供在我的应用程序中打开文件的选项。
以下是我应用的 Info.plist 的相应部分:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>iBlueSky Format</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>uk.co.tenero.ibluesky</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>iBlueSky File</string>
<key>UTTypeIdentifier</key>
<string>uk.co.tenero.ibluesky</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>bsky</string>
</array>
<key>public.mime-type</key>
<string>application/xml</string>
</dict>
</dict>
</array>
谁能发现我做错了什么?
iOS 3.2 支持像这样操作文件,所以它应该工作。
我打算在下一次重大更新中放弃对 iOS 4、5 和 6 的支持,但我想为旧设备上的用户提供更多具有此功能的版本。
【问题讨论】:
您对 iOS 4 上的用户数量有一些分析吗? 目前没有 - 我评估了一些分析解决方案,但还没有找到一个我完全满意的解决方案(有毒的条款和条件、缺少功能等) 并不是说它解决了这个问题,但您似乎不太可能需要再支持 iOS 4。 【参考方案1】:发现问题。我需要将应用程序定义为文件类型的所有者和编辑器。在更高版本的 iOS 中,将您的应用定义为所有者似乎足以暗示编辑者角色:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
【讨论】:
以上是关于Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4的主要内容,如果未能解决你的问题,请参考以下文章
为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)
使用适用于 iOS 的 Google Maps SDK 优化自定义标记图像性能
带有自定义声音的 UILocalNotification 仅适用于 iOS 6.1 和 iOS 7.1,不适用于 iOS 7.0