web-dev-qa-db-ja.com

UIDocumentPickerViewControllerを使用して、Slackのように最初に開いたときにデフォルトのサービス(Dropbox、Googleドライブなど)を表示することは可能ですか?

通常、UIDocumentPickerの動作はユーザーが提示することであり、ユーザーは右上の[場所]メニューを使用してサービスを切り替える必要があります。デフォルトで「Dropbox」または「Google Drive」を最初に表示することは可能ですか?まるで、UIDocumentPickerサービスに「ディープリンク」しているようです。

Slack Appがこれを実行でき、MyMail Appも実行できるようですが、そのためのAPIを見つけることができませんでした。何か案は?

Slack App

24
Vu Tran

UIDocumentPickerViewControllerを使用する代わりに、UIDocumentMenuViewControllerを使用してみてください。これが 関連ドキュメント です。

UIDocumentMenuViewController *documentProviderMenu =
[[UIDocumentMenuViewController alloc] initWithDocumentTypes:[self UTIs]
                                                     inMode:UIDocumentPickerModeImport];

documentProviderMenu.delegate = self;
[self presentViewController:documentProviderMenu animated:YES completion:nil];

デフォルトでは、ドキュメントプロバイダー拡張機能(Dropbox、Googleドライブ、iCloudなど)を含むアプリが表示されます。そのため、ユーザーがデバイスにDropboxまたはGoogleドライブをインストールしている場合、これらのオプションは自動的に表示されます。

addOptionWithTitle:image:order:handler:メソッドを呼び出して、メニューにカスタムオプションを追加することもできます。

22
keither04

Swiftコード例:

let documentProvider = UIDocumentMenuViewController(documentTypes: ["public.image", "public.audio", "public.movie", "public.text", "public.item", "public.content", "public.source-code"], in: .import) 
documentProvider.delegate = self

self.present(documentProvider, animated: true, completion: nil)
7

これは具体的にはGoogleドライブに関するものではありませんが、過去の仕事でApple SDKがFacebookを表示していなかったときにFacebookを表示する必要がありました。(ここでのEdgeケースは、ユーザーのFacebookアカウントが設定)

だから私は彼らのアイコンをつかんでカスタムエントリを作りました。

ここでも同じことができると思います。 Googleドライブのアイコンを取得して、カスタムドキュメントにします。ユーザーが選択すると、Googleに渡されます。

UIDocumentPickerを使用していないので、これは単なる推測です。そしてまた、それはかなりハックです。

1
Paul Cezanne