PDF をダウンロードまたは表示する iPhone アプリケーションを開発しています。
このアプリケーション内で、PDF を表示できる外部アプリケーション (iBooks、Adobe Reader など) のリストを表示したいと考えています。これらのアプリケーションを特定し、アプリケーションのボタンをクリックしたときにそのようなリストを表示するにはどうすればよいですか?
これは、要件に応じて 2 つの異なるケースで実現できます。ここでは両方のケースを含めましたが、これは魅力的に機能します:
ケース 1: PDF をダウンロードし、ローカルに書き込み、パスを設定します。
NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"PDFurlString"]];
//Store the Data locally as PDF File
NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];
NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"myPDF.pdf"];
[pdfData writeToFile:filePath atomically:YES];
//Now create Request for the file that was saved in your documents folder
NSURL *url = [NSURL fileURLWithPath:filePath];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView setUserInteractionEnabled:YES];
[webView setDelegate:self];
[webView loadRequest:requestObj];
ケース 2: NSData を使用して WebView で直接 PDF を表示します。
[webview loadData:fileData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
最後に、PDF を他のアプリで開く場合は、
ステップ 1 : 最初のケースを使用して、URL を取得するだけです。
ステップ 2:これらのURL スキーム の最大のデータベースはここにあります。さて、使い方は?必要なのは UIApplication だけです。まず、iOS が特定の URL を開くことができるかどうかを確認する必要があります。
[[UIApplication sharedApplication] canOpenURL:[NSURL urlWithString:@"fb://profile"]];
ステップ 3:このメソッドが yes を返した場合、ユーザーは Facebook アプリケーションをインストールしています。次のアプリケーションを開くには、呼び出す必要があります。
[[UIApplication sharedApplication] openURL:[NSURL urlWithString:@"fb://profile"]];
これにより、Facebook アプリケーションで Facebook プロフィールが開きます。
残念ながら、すべてのサードパーティ製ソフトウェアがサンドボックス化されているため、iOS で他のアプリケーションを無効にすることはできません。
これがお役に立てば幸いです。