5

ここでたくさんの投稿、多数のオンラインチュートリアル/サンプルコードを確認しましたが、困惑しています。私のアプリでは、iOS7 によってネイティブに提供された UIActivityController を、アプリに適した共有オプション (AirDrop とメール) とともに表示しても問題ありません。

私が抱えている特定の問題は、ユーザーがメールで共有するオプションを選択したときに、保存したドキュメントが電子メール メッセージに添付されることです。メッセージ本文はテキストに設定されていますが、添付ファイルは MIA です。関連するコードは次のとおりです。

// 現在表示されているレコードで共有する XML ファイルを生成します... NSURL *url = [self createShareFile];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Data shared from my app.", url] applicationActivities:nil];

// Filter out the sharing methods we're not interested in....
controller.excludedActivityTypes = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];

// Now display the sharing view controller.
[self presentViewController:controller animated:YES completion:nil];

私は何が欠けていますか?私のファイルは適切に作成されており、コンテンツは正しく、NSURL オブジェクトにはファイルへの適切なパスが含まれています。

ありがとう!

4

2 に答える 2

6

問題が解決しました.....

元の投稿に投稿されたコードは 100% 正確です。この問題は、createShareFile メソッドで返される NSURL を作成する方法にありました。

正しくない (元の方法):

return [NSURL URLWithString:[docFile stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

正しい方法:

return [NSURL fileURLWithPath:docFile];

それを修正するとすぐに、カスタムファイルタイプでも機能し始めました。

于 2014-02-19T22:23:34.860 に答える