iOSにインストールされているアプリケーションのリストを取得できないことは明らかですが、特定のファイルタイプに登録されているアプリのリストを特定できるようにするためのトリックはありますか?つまり、その特定のファイルタイプの[開く...]メニューにユーザーに表示されるリストです。canOpenURLはブール値のみを返しますが、理想的には、サポートされているインストール済みアプリケーションのリストを返します。
3 に答える
UIDocumentInteractionController
UIDocumentInteractionControllerインスタンスをインスタンス化するだけで、オープンインは確かに可能です。
//Following in header file:
UIDocumentInteractionController *docInteractionController;
デリゲートを実装します。
<UIDocumentInteractionControllerDelegate>
.m:
//Here the url is the document URL that you want to open (or you want to apply open in functionality)
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docInteractionController.delegate = self;
OpenInメソッドは次のようになります。
- (void) openIn: (id) sender {
[self.docInteractionController presentOptionsMenuFromBarButtonItem:sender animated:YES];
}
そして、あなたが終わったら:
[self.docInteractionController dismissMenuAnimated:YES];
以上です。これにより、ドキュメントでサポートされているアプリケーションのリストが一覧表示され、それらを選択すると、インスタンス化したドキュメントURLを使用して対応するアプリケーションが起動します。
iOSの現在のバージョンでは、ユーザーに個々のファイルが表示されないため、2つの質問(「特定のファイルタイプのアプリのリストを決定する」または「「開く...」を実装する方法」)のいずれかが可能かどうかは疑問です。アプリを表示するホーム画面。また、アプリは「この特定のファイルで別のアプリを開く」イベントを実行することもできません(これは、MacintoshでApple Eventsを使用して簡単に実行できるものです)。
しかし、これらは、 http://bugreporter.apple.com(登録済みのApple開発者であればログインできます)でAppleに提出できる優れた機能要求のように聞こえます。十分な数の人々がこれらの機能を求めている場合(そして潜在的な「オープンイン...」機能は確かに頻繁に要求される機能です)、Appleは将来のiOSリリースにそれらを含めることを強く検討します。
このサンプルプログラムを見ることができます。それはあなたを助けるかもしれません。UIDocumentaInteractionControllerクラスインスタンスとそのプロパティUTI(一意のタイプ識別子)を使用しました。これは、アプリで開いたファイルの種類をサポートする、携帯電話にインストールされているアプリのリストを取得するのに役立ちます。都合に合わせて、UTIプロパティを少し書き直す必要があるかもしれません。
http://developer.apple.com/library/ios/#samplecode/DocInteraction/Introduction/Intro.html