2011-07-01 52 views
1

大家都获取应用程序内的文件路径的问题

我正在研究支持查看文档文件(doc,文本和其他)的应用程序。因为我已经为这些文件类型注册了我的应用程序,所以如果有人通过电子邮件将文档文件发送给我,我使用 didFinishLaunchingWithOptions方法获取文件的路径。现在的问题是,如果应用程序已经在后台运行,该怎么办?我将如何获取导致我的应用程序在打开该文件时处于活动状态的文件路径?

此致

回答

0

使用 “应用:的OpenURL:sourceApplication:注释:” 从应用程序委托;下面的文字是从苹果的资料为准


application:openURL:sourceApplication:annotation: 
 
Asks the delegate to open a resource identified by URL. 

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
 

讨论
如果应用程序启动时为请求它来打开一个URL资源的其他应用程序的结果,UIApplication的首先发送应用程序的application:didFinishLaunchingWithOptions:消息,然后它调用这个方法。此方法为处理应用程序的委托提供源应用程序的包ID以及来自该应用程序的任何注释信息。如果应用程序在接收到打开URL的请求时已经运行,则调用此方法,但application:didFinishLaunchingWithOptions:不是。

如果此方法未实现,则UIApplication调用application:handleOpenURL :(如果已实现)。您应该优先于应用程序实现此方法:handleOpenURL :.

此方法没有匹配的通知。

0

一般而言,您不想在didFinishLaunchingWithOptions:中打开文档,但是在application:openURL:sourceApplication:annotation:application:handleOpenURL:中。

从文档:

如果你的应用程序已经运行 当文件请求到达时,事件的 取决于您的 委托执行和 当前版本的iOS。在iOS 4.2, , 应用程序中:openURL:sourceApplication:注释: 方法被调用并且预计将 检查文档并将其打开。如果 您的代理没有实现 方法,或者如果您的应用程序是 在iOS 4.1及更早版本中运行,则只调用 应用程序:handleOpenURL:方法 被调用。