iOS UIActivity Sharing
Partage UIActivity iOS
Partage UIActivity Simplifié
À partir d'iOS 6, les applications tierces peuvent partager des données telles que du texte, des URL ou des images en utilisant des mécanismes tels qu'AirDrop, comme décrit dans le guide de communication inter-applications d'Apple. Cette fonctionnalité se manifeste à travers une feuille d'activité de partage à l'échelle du système qui apparaît lors de l'interaction avec le bouton "Partager".
Une énumération complète de toutes les options de partage intégrées est disponible sur UIActivity.ActivityType. Les développeurs peuvent choisir d'exclure des options de partage spécifiques s'ils les jugent inadaptées pour leur application.
Comment Partager des Données
L'attention doit être portée sur :
La nature des données partagées.
L'inclusion d'activités personnalisées.
L'exclusion de certains types d'activités.
Le partage est facilité par l'instanciation d'un UIActivityViewController
, auquel les éléments destinés au partage sont transmis. Cela est réalisé en appelant :
Les développeurs doivent examiner l'UIActivityViewController
pour les activités et les activités personnalisées avec lesquelles il est initialisé, ainsi que les excludedActivityTypes
spécifiés.
Comment Recevoir des Données
Les aspects suivants sont cruciaux lors de la réception de données :
La déclaration des types de documents personnalisés.
La spécification des types de documents que l'application peut ouvrir.
La vérification de l'intégrité des données reçues.
Sans accès au code source, on peut toujours inspecter l'Info.plist
pour des clés comme UTExportedTypeDeclarations
, UTImportedTypeDeclarations
, et CFBundleDocumentTypes
pour comprendre les types de documents qu'une application peut gérer et déclarer.
Un guide succinct sur ces clés est disponible sur Stackoverflow, mettant en avant l'importance de définir et importer des UTIs pour une reconnaissance à l'échelle du système et associer les types de documents avec votre application pour une intégration dans le dialogue "Ouvrir avec".
Approche de Test Dynamique
Pour tester les activités d'envoi, on pourrait :
Accrocher la méthode
init(activityItems:applicationActivities:)
pour capturer les éléments et activités partagés.Identifier les activités exclues en interceptant la propriété
excludedActivityTypes
.
Pour les éléments reçus, cela implique :
Partager un fichier avec l'application depuis une autre source (par exemple, AirDrop, email) qui déclenche le dialogue "Ouvrir avec...".
Accrocher
application:openURL:options:
parmi d'autres méthodes identifiées lors de l'analyse statique pour observer la réponse de l'application.Utiliser des fichiers malformés ou des techniques de fuzzing pour évaluer la robustesse de l'application.
Références
Last updated