How to show “Open In…” when a user tries to open email attachments in iOS

痴心易碎 提交于 2019-11-28 20:38:28

问题


I've seen some iOS apps have this function: When a user tries to open an email attachment, they can press and hold on the attachment for a couple of seconds, and a popup menu will appear displaying two buttons. One button reads "Open in iBooks" (for example). When user clicks it, then the app will be run and open the attachment.

I would like to know how to register my application to be associated with a particular document type.

Also what happens to the document when it is opened? Is it copied to a location that can be read by the application, or does the application receive some sort of object representing the document?

If anyone knows how to do this, please let me know. Thx very much.


回答1:


Your app has to register its ability to open specific file types by setting the CFBundleDocumentTypes in its plist. Here's an example of GoodReader's XML for opening PDFs.

When you app is called to open a file, you can find the information about the file in application:didFinishLaunchingWithOptions:, which is passed a dictionary with the key UIApplicationLaunchOptionsURLKey

You'll get a URL pointing to the file to open. I think that it's read-only and you'll have to save your own version if you want to change it.




回答2:


http://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/RegisteringtheFileTypesYourAppSupports.html%23//apple_ref/doc/uid/TP40010411-SW1

Is what you need :-)



来源:https://stackoverflow.com/questions/3401900/how-to-show-open-in-when-a-user-tries-to-open-email-attachments-in-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!