通常、UIDocumentPickerの動作はユーザーが提示することであり、ユーザーは右上の[場所]メニューを使用してサービスを切り替える必要があります。デフォルトで「Dropbox」または「Google Drive」を最初に表示することは可能ですか?まるで、UIDocumentPickerサービスに「ディープリンク」しているようです。
Slack Appがこれを実行でき、MyMail Appも実行できるようですが、そのためのAPIを見つけることができませんでした。何か案は?
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:
メソッドを呼び出して、メニューにカスタムオプションを追加することもできます。
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)
これは具体的にはGoogleドライブに関するものではありませんが、過去の仕事でApple SDKがFacebookを表示していなかったときにFacebookを表示する必要がありました。(ここでのEdgeケースは、ユーザーのFacebookアカウントが設定)
だから私は彼らのアイコンをつかんでカスタムエントリを作りました。
ここでも同じことができると思います。 Googleドライブのアイコンを取得して、カスタムドキュメントにします。ユーザーが選択すると、Googleに渡されます。
UIDocumentPickerを使用していないので、これは単なる推測です。そしてまた、それはかなりハックです。