1

皆さん、こんにちは。uiwebview で pdf ファイルを他のアプリで開こうとしています。このようなポップアップを表示できます。

画面

こんな感じでコードを書きます。デリゲートも入れます。UIDocumentInteractionControllerDelegate

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
  //other code
 if([fileType isEqualToString:@"pdf"])
 {
     NSLog(@"It is pdf file.");
     //other code to save to nsdocumentdirectory and then get this path
     // file://localhost/var/mobile/Applications/024D40FF-4518-4526-BEAB-   2A0679FD6308/Documents/iphone_user_guide.pdf

          NSURL *pdfURL = [NSURL fileURLWithPath:pathToDownloadTo];
         UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:pdfURL];

         [docController setDelegate:self];

         [docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

 }
}

- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller {
    return self;
}

このエラーが発生しました。void SendDelegateMessage(NSInvocation *): デリゲート (webView:didFinishLoadForFrame:) は、10 秒待った後に戻ることができませんでした。メイン実行ループ モード: kCFRunLoopDefaultMode

一部のリンクでは、Javascriptが原因であると書かれています。これも使う必要があります。stringByEvaluatingJavaScriptFromString

しかし、私はその機能を無効にしてテストしました。その後、エラーはありませんが、アプリがクラッシュします。

譲渡書類が残っているか知りたいです。また、pdfファイルを開くときに、Safariのようにコードを使用して、uiwebviewに「ibookまたはsthで開く」などのUibarbuttonをプログラムで追加する方法を知りたいです。

よろしくお願いします。

4

0 に答える 0