【发布时间】:2013-12-23 07:05:28
【问题描述】:
我想使用从 iPhone 的 Mail 下载的文件(pdf、图像、Doc)我该如何使用它? 当用户单击任何文件中的共享时,我如何在显示的选项中显示我的应用程序? 简而言之,我想使用上述选项添加我的应用程序(在核桃中打开)
【问题讨论】:
-
这是iOS的导出功能...研究这个...
标签: ios iphone email email-attachments
我想使用从 iPhone 的 Mail 下载的文件(pdf、图像、Doc)我该如何使用它? 当用户单击任何文件中的共享时,我如何在显示的选项中显示我的应用程序? 简而言之,我想使用上述选项添加我的应用程序(在核桃中打开)
【问题讨论】:
标签: ios iphone email email-attachments
如果您的应用能够打开特定类型的文件,您应该向系统注册该支持。这允许其他应用通过 iOS 文档交互技术为用户提供将这些文件移交给您的应用的选项。
要声明其对文件类型的支持,您的应用必须在其 Info.plistproperty 列表文件中包含 CFBundleDocumentTypes 键
CFBundleDocumentTypes 键包含一个字典数组,每个字典标识有关特定文档类型的信息。
CFBundleDocumentTypes 数组中的每个字典都可以包含以下键:
CFBundleTypeName 指定文档类型的名称。
CFBundleTypeIconFiles 是图像的文件名数组
用作文档图标的资源。
LSItemContentTypes 包含具有 UTI 类型的字符串数组
表示该组中支持的文件类型。
LSHandlerRank 描述此应用程序是否拥有该文档
输入或只能打开它。
自定义文件格式的文档类型信息
<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>
更多详情:Developer.Apple: Registering the File Types Your App Supports
【讨论】:
您可以使用UIDocumentInteractionController
-(IBAction)onTouchOpenInButton:(id)sender
{
if(!documentController)
{
documentController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:loaclFileURL]];
}
else{
documentController.URL= [NSURL fileURLWithPath:loaclFileURL];
}
[documentController presentOptionsMenuFromBarButtonItem:sender animated:YES];
}
来自 Apple 文档
文档交互控制器与委托对象一起为管理用户与本地系统中文件的交互提供应用内支持。例如,电子邮件程序可能使用此类来允许用户预览附件并在其他应用程序中打开它们。使用此类为预览、打开、复制或打印指定文件提供适当的用户界面
如果您希望您的应用具有您呈现的屏幕截图的功能,请使用 UIDocumentInteractionController
如果您希望您的应用在 openin 操作表中列出(例如在您的应用名称中打开)请参阅 ramshad 的回答
【讨论】: