使用UIDocumentInteractionController从另一个应用程序导入文件

时间:2011-09-12 07:00:46

标签: iphone ipad ios4

我想开发一个iOS应用程序,我希望使用UIDocumentInteractionController在我的邮件/ Safari中获取任何PDF / Doc / XLS文件,最后将它们上传到我的本地服务器。

我可以将iPhone中的图像文件上传到本地服务器。

但我的问题是,我是否可以使用UIDocumentInteractionController&和我的应用程序将PDF / Doc / XLS文件(存在于safari / Mail应用程序中)提取到我的应用程序中将它们上传到我的本地服务器?

2 个答案:

答案 0 :(得分:0)

您无法获取文档,您可以告诉iOS您的应用可以打开PDF / Doc / XLS。 通过向info.plist添加支持的文件类型来完成此操作: http://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/RegisteringtheFileTypesYourAppSupports.html#//apple_ref/doc/uid/TP40010411-SW1

答案 1 :(得分:0)

对于iPad应用,确实​​可以使用UIDocumentInteractionController从其他应用程序导入文件。您需要做的就是在应用程序的info.plist中添加支持的文档格式。以下列方式将applicationDidFinshWithLaunchingOptions委托方法添加到应用程序委托类中的应用程序。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self applicationDidFinishLaunching:application];

    if (launchOptions && [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey])
    {
        NSString* path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

        NSURL *url=[launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
        NSString *sourceFilePath=[url path];        
        NSFileManager *fileManager=[NSFileManager defaultManager];
        NSData *fileData=[fileManager contentsAtPath:sourceFilePath];
        NSString *fileName = [NSString stringWithFormat:@"test.pdf"];
        NSString *updatedFilePath = [path stringByAppendingPathComponent:fileName];

        BOOL hasWrittenSuccessfully = [fileData writeToFile:updatedFilePath atomically:TRUE];   
    }

    return YES;
}