Dans le cadre de la en bac à sable le monde du développement iOS partageant des données entre entre applications peut s'avérer difficile. Les développeurs iOS ne peuvent pas partager les données directement par l'intermédiaire de l'interface système de fichiers Ils doivent donc trouver d'autres solutions. pour leurs applications. Les solutions les plus courantes sont les suivantes :
-
UIDocumentInteractionController
-
UIActivityViewController
-
Accès partagé au trousseau
-
Schéma d'URL personnalisé
-
Service Web
-
API iCloud
UIDocumentInteractionController :
Permet à l'utilisateur d'ouvrir un document dans n'importe quelle autre application qui qui s'enregistre comme pouvant traiter un document particulier Type d'uniforme Identifiant (UTI) .
L'UIDocumentInteractionController a été utilisé dans le passé en tant que d'ouvrir un document dans d'autres applications sur l'appareil, par ex. par exemple, l'ouverture des pièces jointes d'un courrier électronique à partir de l'application Mail.
Malheureusement, la L'interface utilisateur de UIDocumentInteractionController n'affiche que les éléments suivants six applications .
Vous ne pouvez pas garantir que votre candidature figurera sur la liste. Bien que le contrôleur UIDocumentInteractionController n'ait pas été déprécié, le contrôleur UIActivityViewController offre un remplacement plus souple à partir d'iOS 6.0.
Disponibilité : iOS 3.2+
Pour :
- Permet de partager des types de données communs avec un large éventail de d'applications.
Cons :
-
Permet de contrôler le type de données envoyées au UIDocumentInteractionController, mais pas les destinations.
-
Nécessite une interaction supplémentaire avec l'utilisateur.
-
Le nombre limité de destinations de données peut faire en sorte que votre application ne s'affiche pas dans la liste.
UIActivityViewController :
Permet à l'utilisateur d'effectuer un certain nombre d'actions avec un tableau de données.
Par exemple, ils peuvent imprimer, envoyer des courriels, copier, publier sur les médias sociaux ou ouvrir des fichiers dans une autre application.
Vous pouvez créer vos propres sous-classes d'UIActivity pour fournir des services personnalisés. à l'utilisateur.
Disponibilité : iOS 6.0+
Pour :
-
Idéal pour partager des types de données communes avec un large éventail d'applications et de médias sociaux.
-
Peut fournir un tableau d'éléments à appliquer à une activité. Les objets doivent être conformes au protocole UIActivityItemSource.
-
Possibilité de définir des types d'activité exclus.
-
L'interface de pagination permet plus de destinations de données que l'UIDocumentInteractionController.
Cons :
Accès partagé au trousseau :
Permet de stocker en toute sécurité des données dans un trousseau de clés partagé avec d'autres utilisateurs. applications faisant partie d'une suite d'applications peuvent y accéder.
Toutes les applications qui partagent l'accès au trousseau doivent utiliser le même identifiant d'application. préfixe.
Pour un exemple d'accès partagé au trousseau en action. Voir Apple's GenericKeychain d'Apple .
Disponibilité : iOS 3.0+
Pour :
- Accès sécurisé aux données.
Cons :
-
Vous ne pouvez partager des données qu'entre des applications qui partagent un préfixe d'identification commun.
-
L'API du trousseau sur le simulateur iOS provient d'OS X, dont l'API est différente de celle de l'appareil iOS.
Schéma d'URL personnalisé :
Permet aux données de passer d'une application à l'autre à l'aide de simples URL.
Disponibilité : iOS 3.0+
Pour :
- Aucune connexion réseau n'est nécessaire.
- Idéal pour les petites quantités de données que vous pouvez facilement encoder dans une URL légale échappée.
Cons :
- Vous devez encoder les données dans une URL légale échappée.
Remarque : L'encodage base64 est couramment utilisé pour transformer des données sérialisables en chaînes de caractères. Cependant, les chaînes base64 peuvent inclure des caractères qui ne sont pas valides pour une utilisation dans les URL. Vous pouvez envisager d'utiliser base64url. Voir Base 64 Encoding with URL and Filename Safe Alphabet (Encodage en base 64 avec l'alphabet sécurisé des URL et des noms de fichiers) pour plus d'informations.
API iCloud :
Tout le monde sait ce qu'est iCloud, ses avantages et ses inconvénients. plus d'explications à ce sujet.
Mais on peut se demander comment il est possible de partager des données entre applications à l'intérieur d'un même appareil, il existe des solutions de contournement pour y parvenir. pour y parvenir.
C'est possible parce que l'identifiant utilisé pour iCloud est différent de l'identifiant du paquet, il est donc possible de partager images, vidéos et autres documents.
Pour en savoir plus voir la discussion sur ce sujet
Service Web :
Synchronisation des données par l'intermédiaire d'un tiers (par exemple Dropbox) ou d'un site web personnalisé personnalisé.
Disponibilité : iOS 2.0+
Pour :
- Utile pour le partage et la distribution de grandes quantités de données.
Cons :
- Nécessite une connexion réseau.
- le surcoût lié à la mise en œuvre des services web.
Référence