0

以下のコードを使用して、Web サイトから pdf ファイルをダウンロードし、その後 uiwebview に表示しています

NSString *url = [NSString stringWithString:[[[popOverContent currentValues]     objectAtIndex:0]objectForKey:@"Web"]];

    // Determile cache file path
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,      NSUserDomainMask, YES);
    NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"index.pdf"];

    // Download and write to file
    NSURL *url2 = [NSURL URLWithString:url];
    NSData *urlData = [NSData dataWithContentsOfURL:url2];
    [urlData writeToFile:filePath atomically:YES];

    fileToAtatch = urlData;

    // Load file in UIWebView
    [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];

この時点ではすべてが期待どおりに機能しますが、後で次のコードを使用して mfmailcomposer を使用して PDF ファイルを電子メールに添付すると、問題が発生します。

-(IBAction)EmailPressed:(id)sender
{
if ([MFMailComposeViewController canSendMail]) {

    MFMailComposeViewController *viewController = [[MFMailComposeViewController alloc] init];
    viewController.mailComposeDelegate = self;
    NSString *query = @"please find atatched the requested data sheet";
    [viewController setSubject:[popOverContent selectedSize]];
    [viewController setMessageBody:query isHTML:NO];
    [viewController addAttachmentData:fileToAtatch mimeType:@"application/pdf" fileName:[popOverContent selectedSize]];
    [self presentModalViewController:viewController animated:YES];

}

}

このコードは期待どおりに機能し、複数ページの PDF が期待どおりに添付されます。

Ios 5.0.1 を使用して iPad でアプリをテストし、電子メールを自分に送信すると、電子メールの PDF のアイコンをクリックしても、PDF は開かず、プレビューは uiprogress インジケーターが回転してそこに留まります。ただし、ios 6.0.1 を搭載した ipad2 で同じ方法でアプリをテストすると、pdf ファイルは問題なく開きます。iPhone 5 やマウンテン ライオンを搭載した Mac でも動作します。

何が起こっているのですか?ipad 1ではこの奇妙な動作をするが、ipad 2などではそうではない、私のコードと実装の何が問題なのか誰か教えてもらえますか?

お知らせ下さい

ありがとう

4

1 に答える 1

1

私は最終的にこれを理解し、次のようにコードを変更して問題を解決しました

         fileName = [selectedSizeToUse stringByAppendingString:@".pdf"];
         [mailController setSubject:selectedSizeToUse];
         [mailController addAttachmentData:fileToAtatch mimeType:@"application/pdf" fileName:fileName];

iOS 5 の実装では、プレビュー アプリケーションで pdf ファイルを認識するために .pdf 拡張子が必要なようですが、iOS 6 の実装では、プレビュー アプリは .pdf 拡張子なしで pdf を表示するのに十分なほど巧妙でした。

これが行き詰まった他の誰かに役立つことを願っています

于 2013-02-01T12:21:54.560 に答える