皆さん、こんにちは。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をプログラムで追加する方法を知りたいです。
よろしくお願いします。