我正在使用Xcode。作爲附件,我可以通過電子郵件發送UIDocuments嗎?
在我的應用我節省一些UIdocuments在該位置
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
我在尋找一種方式來共享文檔,我的第一選擇是通過電子郵件。
作爲附件,我可以通過電子郵件發送這些文件嗎?我可以用另一臺具有相同應用的設備打開嗎?
我正在使用Xcode。作爲附件,我可以通過電子郵件發送UIDocuments嗎?
在我的應用我節省一些UIdocuments在該位置
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
我在尋找一種方式來共享文檔,我的第一選擇是通過電子郵件。
作爲附件,我可以通過電子郵件發送這些文件嗎?我可以用另一臺具有相同應用的設備打開嗎?
你可以像下面這樣做。
創建一個MFMailComposeViewController
並使用- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename
方法添加您的附件。
例如。
MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];
[mailVC setSubject:@"Shared documents"];
[mailVC setToRecipients:@[@"[email protected]"]];
[mailVC setMessageBody:@"Here the docs I want to share" isHTML:NO];
[mailComposer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"file.pdf"];
[mailVC setMailComposeDelegate:self];
[self presentViewController:mailVC animated:YES completion:nil];
其中pdfData
是NSData
類型。所以,您需要將文檔轉換爲NSData
。
來自Apple doc。
addAttachmentData:mimeType:fileName:
This method attaches the specified data after the message body but before the user’s signature. You may attach multiple files (using different file names) but must do so prior to displaying the mail composition interface. Do not call this method after presenting the interface to the user.
關於你問題的第二部分。你能解釋一下你需要展示什麼類型的文檔嗎?
我的子類UIDocument,具有特定的擴展名。我的想法是通過郵件發送到其他設備與應用程序,並打開它。我可以使用「打開」打開任何擴展名,例如@「drp」? –
我很混淆somethig,可能是愚蠢的,什麼是mailComposer? –
@ user2441567它用於發送電子郵件。 –
要發送任何附件,您需要將內容獲取到NSData
對象中。如果文件在磁盤上,那麼這很簡單。您只需要文檔的路徑或文件URL。然後,您可以使用路徑或URL創建NSData
對象。
如果電子郵件的接收者具有相同的應用程序,並且該應用程序設置爲出現在此類型文檔的「打開」菜單中,則用戶可以從附件打開該應用程序。當你的應用被要求打開這種類型的文件時,你的應用只需要知道該做什麼。 SO上有大量現有的文檔和問題,描述如何註冊應用程序以打開某些文件類型。
你試過我的代碼嗎?乾杯。 –
拋出錯誤......對建築的ARMv7未定義的符號: 「_OBJC_CLASS _ $ _ MFMailComposeViewController」,從引用: objc級,裁判在DropsViewController.o LD:符號(S)未找到的ARMv7架構鐺 :錯誤:鏈接器命令失敗,退出代碼1(使用-v查看調用) –
您需要爲此導入框架。它被稱爲** MessageUI.framework **。按照本教程中的步驟3。 http://mobile.tutsplus.com/tutorials/iphone/mfmailcomposeviewcontroller/ –