当用户尝试在iOS中打开电子邮件附件时,如何显示“打开在…”

我见过一些iOS应用程序有这个function:当用户试图打开一个电子邮件附件,他们可以按住附件几秒钟,一个popup菜单将出现显示两个button。 一个button显示“打开在iBooks”(例如)。 当用户点击它,那么应用程序将运行并打开附件。

我想知道如何注册我的应用程序与特定的文档types相关联。

文档打开时会发生什么? 它被复制到应用程序可以读取的位置,还是应用程序接收到某种代表文档的对象?

如果有人知道如何做到这一点,请让我知道。 Thx非常。

您的应用程序必须通过在其plist设置CFBundleDocumentTypes来注册打开特定文件types的function。 这里是GoodReader用于打开PDF的XML示例。

当您调用应用程序来打开文件时 ,您可以在application:didFinishLaunchingWithOptions:find关于该文件的信息application:didFinishLaunchingWithOptions:该文件使用键UIApplicationLaunchOptionsURLKey

你会得到一个URL指向要打开的文件。 我认为它是只读的,如果你想改变它,你将不得不保存自己的版本。