2013-01-18 119 views
0

我正在構建一個應用程序,允許用戶導出導入數據文件並通過電子郵件發送它們。HandleOpenURL with multiple pathExtension

所以我創建了擴展名爲「.myAppExtension」的數據文件類型。

第一次一切順利。我無法導出和發送電子郵件。當我打開電子郵件時,該方法確實起作用。

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url { 

if (url != nil && [url isFileURL]) { 
    NSLog(@"%@",url); 
    NSLog(@"%@",[url pathExtension]); 

    if([[[url pathExtension] lowercaseString] isEqualToString:[@"myAppExtension" lowercaseString]]){ 
     //Deal with received file 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Export ok" message:[NSString stringWithFormat:@"This file has been added : %@",[url lastPathComponent]] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil,nil]; 
     [alert show]; 
    }else{ 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Export failed" message:[NSString stringWithFormat:@"This extention is not supported : %@",[url pathExtension]] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil,nil]; 
     [alert show]; 
    } 

} 
return YES; 
} 

我的問題是,當我想導出擴展名爲「otherExtension」的其他類型的文件。我沒有在我的應用程序中爲此擴展創建數據類型。

因此,我導出併發送一個電子郵件與第二種類型的文件。文件名顯示在電子郵件「file.otherExtension」中。但是,這是問題,當我點擊這個郵件附件時,電子郵件應用程序提供給我在我的應用程序中打開它。這不是我想要的,正如我所說的,我沒有爲「otherExtension」創建數據類型。

編輯:這是我創造了對myApp-的info.plist文件類型:

enter image description here

回答

0

如果有人有興趣,這個問題是從發送電子郵件fonction。

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init] ; 
[picker setSubject:mailSubject]; 
[picker addAttachmentData:codedData mimeType:@"application/myApp" fileName:[filePath lastPathComponent]]; 
[picker setToRecipients:[NSArray array]]; 
[picker setMessageBody:mailBody isHTML:NO]; 
[picker setMailComposeDelegate:self]; 
[currentMainViewController presentViewController:picker animated:YES completion:nil]; 

通過向郵件附件添加MIME類型,接收應用程序正在使用它來讀取文件。用「無」替換MIME類型解決了我的問題。

[picker addAttachmentData:codedData mimeType:nil fileName:[filePath lastPathComponent]];