web-dev-qa-db-fra.com

En utilisant UIDocumentPickerViewController, est-il possible d'afficher un service par défaut (Dropbox, Google Drive, etc.) à la première ouverture comme dans Slack?

Normalement, le comportement avec UIDocumentPicker est que vous présentez, puis l'utilisateur doit utiliser le menu "Emplacements" en haut à droite pour basculer entre les services. Est-il possible d'afficher soit "Dropbox" soit "Google Drive" en premier par défaut? Presque comme si nous "supprimions les liens" dans le service UIDocumentPicker.

Il semble que Slack App soit capable de faire cela et également l'application MyMail, mais je n'ai pas pu trouver d'API pour cela. Des idées?

Slack App

24
Vu Tran

Au lieu d'utiliser un UIDocumentPickerViewController, essayez d'utiliser un UIDocumentMenuViewController. Voici le documentation pertinente .

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

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

Par défaut, cela affichera les applications qui incluent une extension de fournisseur de documents (telles que Dropbox, Google Drive, iCloud, etc.). Donc, si un utilisateur a installé Dropbox ou Google Drive sur son appareil, ces options s'afficheront automatiquement.

Vous pouvez également ajouter des options personnalisées au menu en appelant le addOptionWithTitle:image:order:handler: méthode.

22
keither04

Exemple de code 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
Calebe Nunes Pastor

Il ne s'agit pas spécifiquement de Google Drive, mais lors d'un travail antérieur, je devais afficher Facebook lorsque Apple SDK ne me montrait pas Facebook. (Le cas Edge ici était le compte Facebook de l'utilisateur n'était pas dans Paramètres.)

J'ai donc saisi leur icône et fait une entrée personnalisée.

Je soupçonne que vous pourriez faire de même ici. Saisissez l'icône Google Drive et faites-en un document personnalisé. Et lorsque l'utilisateur le sélectionne, vous les remettez à Google.

C'est juste une supposition puisque je n'ai pas utilisé UIDocumentPicker. Et aussi, c'est assez hackish.

1
Paul Cezanne