Sucha's Blog ~ Archive for June, 2013

13年6月13日 周四 14:54

[iOS] 为 App 提供打开邮件附件的支持

不多说了,先描述使用场景,比如在邮件有附件,或其他 App 中有各种类型的文档, 长按文档标识系统会从底部弹出使用某某某打开,比如使用微信等等。

这种官方的说法是文档交互,需要这样编程处理 Document Interaction Programming Topics for iOS,简单点就是在 App 的 Info.plist 里面 添加以下就可以在系统弹出框里看到使用某某某打开了:

<dict>
   <key>CFBundleTypeName</key>
   <string>My File Format</string>
   <key>CFBundleTypeIconFiles</key>
       <array>
           <string>MySmallIcon.png</string>
           <string>MyLargeIcon.png</string>
       </array>
   <key>LSItemContentTypes</key>
       <array>
           <string>com.example.myformat</string>
       </array>
   <key>LSHandlerRank</key>
   <string>Owner</string>
</dict>

这其实算是使用文件作为数据交换,需要指定 app 所支持的类型,这篇总览介绍 了阿婆是如何对待文件类型的 Uniform Type Identifiers Overview,系统定义的 UTI 有这些 System-Declared Uniform Type Identifiers

在代码里面是在 Application Delegate 的 application:openURL:sourceApplication:annotation: 响应的,添加这个函数就 可以支持了,它会在 willFinishLaunchingWithOptions 以及 didFinishLaunchingWithOptions 之后运行。

参考自 StackOverflow 的 How do I associate file types with an iPhone application?,噢噢噢~~~