在应用程序中获取文件路径时出现问题

时间:2011-07-01 13:33:08

标签: iphone objective-c file

每个人

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

最好的问候

2 个答案:

答案 0 :(得分:0)

从app delegate中使用“application:openURL:sourceApplication:annotation:”;以下文字摘自Apple的文档


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:message,然后调用此方法。此方法为处理应用程序的委托提供源应用程序的包ID以及该应用程序的任何注释信息。如果应用程序在收到打开URL的请求时已在运行,则会调用此方法,但是应用程序:didFinishLaunchingWithOptions:不是。

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

实现此方法

此方法没有匹配的通知。

答案 1 :(得分:0)

通常,您不想在didFinishLaunchingWithOptions:中打开文档,而是在application:openURL:sourceApplication:annotation:application:handleOpenURL:中打开文档。

来自文档:

  

如果您的应用程序已在运行   当文件请求到达时,   一系列事件取决于你的   委托实施和   当前版本的iOS。在iOS 4.2中,   该   应用:的OpenURL:sourceApplication:注释:   方法被调用并且被期望   检查文档并打开它。如果   你的代表没有实现这一点   方法,或者你的申请是   仅在iOS 4.1及更早版本中运行   应用程序:handleOpenURL:方法   被称为。