iOS UIActivity Sharing
iOS UIActivity Sharing
UIActivity Sharing Vereinfacht
Seit iOS 6 können Drittanbieteranwendungen Daten wie Text, URLs oder Bilder über Mechanismen wie AirDrop teilen, wie im Inter-App Communication guide von Apple beschrieben. Diese Funktion zeigt sich durch ein systemweites Teilen-Aktivitätsblatt, das beim Interagieren mit der Schaltfläche "Teilen" erscheint.
Eine umfassende Auflistung aller integrierten Sharing-Optionen ist unter UIActivity.ActivityType verfügbar. Entwickler können entscheiden, bestimmte Sharing-Optionen auszuschließen, wenn sie diese für ihre Anwendung als ungeeignet erachten.
Wie man Daten teilt
Die Aufmerksamkeit sollte auf folgende Punkte gerichtet werden:
Die Art der geteilten Daten.
Die Einbeziehung von benutzerdefinierten Aktivitäten.
Der Ausschluss bestimmter Aktivitätstypen.
Das Teilen erfolgt durch die Instanziierung eines UIActivityViewController
, dem die zum Teilen vorgesehenen Elemente übergeben werden. Dies wird erreicht, indem man Folgendes aufruft:
Entwickler sollten den UIActivityViewController
hinsichtlich der Aktivitäten und benutzerdefinierten Aktivitäten, mit denen er initialisiert wird, sowie der angegebenen excludedActivityTypes
genau prüfen.
Wie man Daten empfängt
Die folgenden Aspekte sind entscheidend beim Empfangen von Daten:
Die Deklaration von benutzerdefinierten Dokumenttypen.
Die Spezifikation von Dokumenttypen, die die App öffnen kann.
Die Überprüfung der Integrität der empfangenen Daten.
Ohne Zugriff auf den Quellcode kann man dennoch die Info.plist
auf Schlüssel wie UTExportedTypeDeclarations
, UTImportedTypeDeclarations
und CFBundleDocumentTypes
überprüfen, um die Arten von Dokumenten zu verstehen, die eine App verarbeiten und deklarieren kann.
Ein prägnanter Leitfaden zu diesen Schlüsseln ist auf Stackoverflow verfügbar, der die Bedeutung der Definition und des Imports von UTIs für die systemweite Erkennung sowie die Zuordnung von Dokumenttypen zu Ihrer App für die Integration im Dialog "Öffnen mit" hervorhebt.
Dynamischer Testansatz
Um sendende Aktivitäten zu testen, könnte man:
In die Methode
init(activityItems:applicationActivities:)
einhaken, um die Elemente und Aktivitäten zu erfassen, die geteilt werden.Ausgeschlossene Aktivitäten identifizieren, indem man die Eigenschaft
excludedActivityTypes
abfängt.
Für empfangene Elemente umfasst es:
Eine Datei von einer anderen Quelle (z. B. AirDrop, E-Mail) mit der App zu teilen, die den Dialog "Öffnen mit..." aufruft.
application:openURL:options:
unter anderen während der statischen Analyse identifizierten Methoden abfangen, um die Reaktion der App zu beobachten.Fehlformatierte Dateien oder Fuzzing-Techniken verwenden, um die Robustheit der App zu bewerten.
Referenzen
Last updated